2014-04-11 45 views
2

我跟着重置mysql的密碼這些指令:https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html不能復位MySQL root密碼

但不知何故,它並不在我的環境中工作。

首先,我創建了一個像這樣重置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 &

然後我試圖通過根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

但一切都失敗,相同的錯誤消息。

如何重設根密碼?

我使用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

感謝您的建議。但是我無法知道我應該怎樣做「設置套接字文件路徑」。我在我的問題中添加了my.cnf。我認爲這個配置告訴服務器關於套接字文件。你能告訴我更具體的我應該怎麼做? – ironsand

+1

使用此命令啓動服務器時的套接字文件路徑: - sudo mysqld_safe --init-file =/etc/mysql_grant.sql -S /var/lib/mysqld.sock& –

+0

我試過'mysqld.sock'和'mysql.sock',但兩者都不適合我。 – ironsand