1. 程式人生 > >mysql 5.7.18 Can't change dir to引發的一系列問題(初始化data、改root密碼)

mysql 5.7.18 Can't change dir to引發的一系列問題(初始化data、改root密碼)

c:\program files\mysql\Mysql Server 5.7\bin\mysqld –console
會報錯:

mysqld: Can’t change dir to ‘c:\Program Files\MySQL\MySQL Server 5.7\data\’ (Errcode: 2 - No such file or directory)

StackOverflow上的解決辦法:
在Mysql Server 5.7目錄下建一個my.ini檔案,內容如下:
[mysqld]
datadir=”X:\Your Directory Path and Name”

然後執行 mysqld –initialize

執行後,cmd視窗無任何提示,之後就悲劇了,用
mysql -u root -p
登入,始終提示密碼不對。

經過查資料發現,–initialize會重置root密碼,並生成一個隨機的臨時密碼,下次登入需要用這個密碼。
按照文件說,這個臨時密碼會顯示在cmd視窗,但並沒有。
原因在於當初初始化時應該用 –console選項來輸出,在沒有輸出的情況下,這個密碼會被記錄到log中。於是開始看log存在哪裡。
發現 mysql的log檔案是二進位制的,而且有很多log檔案。

如果不查這個密碼,還有一個解決辦法,就是重置root密碼,具體方法看文件吧,以前的 mysqld_safe的命令在5.7中似乎無效了。
現在的方法是在mysqld中使用 init_file選項。

先擱置,等解決後再更新,坑爹的 stackoverflow,呵呵。

最終解決辦法:
新建一個txt檔案,裡面寫上修改密碼的SQL語句。
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;
然後啟動mysql伺服器
mysqld –init-file=path:\initfileName
執行後,即可修改root密碼。