新装mysql遇到拒绝访问

 

        在帮客户在“新”机子上装内部论坛服务器,需要用到mysql。据客户说,提供的机器是一台新机子,以前没人“碰”过。可是安装mysql时,直接就装上了,没有提示需要设置mysql 的 root密码。当时觉得奇怪。安装完毕后输入

mysql -u root

打算用root账户设一下密码,谁知道系统出现提示:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

向客户再确认一下,以前有没有当过服务器,装过mysql-server,得到否定答案,告诉我这是“新”机子。太奇怪了,于是打算卸载后重新安装一次。

sudo apt-get purge php5-mysql mysql-server

sudo apt-get install php5-mysql mysql-server

重新安装时,依然没有出现提示设置root密码。然后以root用户进入时,仍然遇到拒绝访问。

整理了一下思路,既然系统提示的是没有使用密码而导致拒绝访问,而客户说没安装过mysql,那就当遗忘密码的情况处理就好了。

于是,停掉mysql服务器,修改mysql-server的配置文件:

sudo /etc/init.d/mysql stop

sudo vim /etc//mysql/my.cnf

修改配置文件,在mysqld块末尾加入:

–skip-grant-tables

就是启动mysql服务时,跳过加载授权表。重新启动mysql:

sudo /etc/init.d/mysql start

再次用root进入的时候就不弹出没有密码而拒绝访问的提示了:

mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.

此时重新设置一下root密码:

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=PASSWORD(‘**我设置的密码**’) where user=’root’;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> quit

最后再次停止mysql服务,重新编辑/etc/mysql/my.cnf文件,删除或注销掉刚才写入的启动时跳过授权表的那一行,然后再次启动mysql,至此问解决了。

感想:对于普通客户,“新”机子是对客户而言,网络工程师需要根据机器提示作出变通将就方案。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据