無法啟動服務的問題
在win10下,MySQL5.7本來是運行的好好的;突然停止運行了;服務也無法啟動。
在卸載之后,重新安裝,依舊是無法啟動。
度娘之后,在path環境變量里面添加了C:\Program Files\MySQL\MySQL Server 5.7\bin路徑,還是依舊無法啟動。
然后繼續度娘,讓:
解決辦法
- 執行mysqld --install,查看是否已經安裝成功
- 刪除 mysqld -remove mysql
- 重新執行mysqld --install
- 啟動服務net start mysql
服務依舊是啟動不了。
查看日志: MYSQLD --CONSOLE
說是在MySQL Server 5.7目錄下面,沒有找到data文件夾;不知道是不是win10下,這個版本的沒有什么權限創建這個文件夾;手動創建一個吧。然后在命令 net start mysql啟動,依舊報錯,只不過是另一個錯誤:
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
[ERROR] Fatal error: Failed to initialize ACL/grant/time zones structures or failed to remove temporary table files.
[ERROR] Aborting
第一個錯誤可以看到這里少了一個mysql.plugin的表;
第二個錯誤是少了mysql.user表;
解決方法:
1、去C:\Program Files\MySQL\MySQL Server 5.7\bin目錄下創建my.ini文件,內容如下:
-
[mysqld]
-
basedir=C:\Program Files\MySQL\MySQL Server 5.7
-
datadir=C:\Program Files\MySQL\MySQL Server 5.7\data
2、清空C:\Program Files\MySQL\MySQL Server 5.7\data目錄,里面的信息一會通過命令會自動生成的;
3、執行 mysqld --initialize --user=mysql --console
4、啟動成功;
無法連接的問題
完成上面的操作之后,用navicat和CMD登錄時,用密碼都會報1045-access denied for user 'root'@錯,直接輸入MySQL反而登錄成功;
解決方法
1.以管理員身份啟動CMD,必須是管理員身份
2.執行命令:mysqld --skip-grant-tables
3.以管理員身份重開個命令窗口
4.執行如下命令:
#update mysql.user set password=password('123456') where user='root';
update mysql.user set authentication_string=password('123456') where user='root';
成功!
但是,使用Navicat for MySQL軟件連接失敗,報錯1862
解決方法
管理員權限運行命令:mysqladmin -uroot -p password,
這樣改完密碼后,用Navicat for mysql軟件連接正常。
轉載請附上原文出處鏈接:https://blog.csdn.net/ccnu027cs/article/details/102837529