无法重置mysql root密码

时间:2014-04-11 07:02:13

标签: mysql linux centos

我按照这些说明重置了mysql密码:https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

但不知怎的,它在我的环境中不起作用。

首先,我创建了一个重置​​root密码的sql文件。

UPDATE mysql.user SET Password=PASSWORD('foobar') WHERE User='root';
FLUSH PRIVILEGES;

sudo service mysqld stop然后sudo mysqld_safe --init-file=/etc/mysql_grant.sql &

然后我尝试按root mysql -u root -pfoobar连接数据库,但由于此错误而失败:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

接下来我尝试使用mysqld,但没有,所以我使用mysqld_safe代替。

sudo mysqld_safe --skip-grant-tables &,然后是mysql -u root

我还尝试了sudo service mysqld start --skip-grant-tables,然后mysql -u root

但是所有内容都失败并显示相同的错误消息。

如何重置root密码呢?

我正在使用CentOS release 6.5 (Final)mysql --version输出:

mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

修改

这是我的/etc/my.cnf

[client]
port                           = 3306
socket                         = /var/lib/mysql/mysql.sock

[mysqld_safe]
socket                         = /var/lib/mysql/mysql.sock

[mysqld]
user                           = mysql
pid-file                       = /var/run/mysql/mysql.pid
socket                         = /var/lib/mysql/mysql.sock
port                           = 3306
datadir                        = /var/lib/mysql

[mysql]
!includedir /etc/mysql/conf.d

我确实有/var/lib/mysql/mysql.sock

编辑2

sudo mysqld_safe --init-file=/etc/mysql_grant.sql -S /var/lib/mysqld.sock &给了我这个消息。不知何故,它在说完之后就结束了。 sudo mysqld_safe --init-file=/etc/mysql_grant.sql -S /var/lib/mysql.sock &给了我同样的错误。

[1] 4700
140411 17:59:52 mysqld_safe Logging to '/var/lib/mysql/[MYSERVERNAME].err'.
140411 17:59:52 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140411 17:59:52 mysqld_safe mysqld from pid file /var/run/mysql/mysql.pid ended

1 个答案:

答案 0 :(得分:1)

它不是密码重置问题..

其套接字文件问题。请在初始化文件中设置套接字文件路径,或者在说明服务器时提及它。

由于