我按照这些说明重置了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
答案 0 :(得分:1)
它不是密码重置问题..
其套接字文件问题。请在初始化文件中设置套接字文件路径,或者在说明服务器时提及它。
由于