一、以系統的root使用者(什麼,你的系統的root使用者密碼也忘了。那隻好看我另外一篇linux下忘記root使用者的解決辦法了先解決這個問題)登陸系統,進入終端
[root@localhost /]#
二、殺掉mysql進程
方法1、[root@localhost /]#killall mysqld
方法2、[root@localhost /]#ps -aux //查看所有進程,找到mysql進程的pid
然後
[root@localhost /]#kill pid //pid是mysql的進程號
三、用--skip-grant-tables參數啟動mysqld
[root@localhost /]#/usr/local/mysql/bin/mysqld_safe --skip-grant-tables&
// 其中/usr..../bin是我的mysql安裝目錄
[root@localhost /]#/usr/local/mysql/bin/mysql //進入mysql
mysql> use mysql //切換到mysql database
mysql> UPDATE user SET password=password('123456') WHERE user='root';
//將root密碼該為123456了
四、注意事項
The full command to load MySQL like this is:
mysqld_safe --skip-grant-tables --autoclose
(Editor's Note: Our technical reviewer found that he had to launch the mysqld_safe command
without the '--autoclose' flag, otherwise the daemon never started.)
這是國外網站說的,我沒用autoclosa也成功了
但是我在執行/usr/local/mysql/bin/mysqld_safe --skip-grant-tables&即出現錯誤提示:
./mysqld_safe
starting mysqld daemon with databases from /usr/local/var
STOPPING server from pid file /usr/local/var/localhost.localdomain.pid
mysqld ended
然後進入/usr/local/var/
vi ./localhost.localdomain.err 內容如下:
050410 04:02:59 mysqld started
050410 4:03:00 InnoDB:Operating system error number 13 in a file operation.
InnoDB:The error means mysqld does not have the access rights to
InnoDB:the directory.
InnoDB:File name ./ibdata1
InnoDB:File operation call:'create'.
InnoDB:Cannot continue operation.
050410 04:03:00 mysqld ended
懷疑是./var目錄的存取權限,故如下操作:
chmod 777 ./var
然後重新執行後台,仍出以上錯誤,但在localhost.localdomain.err檔案中的錯誤資訊已改為找不到一個叫做
help.*的檔案了(這個檔案名稱我記不得了)
這是因為我的mysql安裝目錄的讀寫權限是這樣造成的
mysql安裝目錄屬於使用者root,但是群組是mysql的
把群組也改為root即可。