1、Can't connect to MySQL server on xxx (10061)
報錯:Can't connect to MySQL server on xxx (10061) 無法連接到MySql服務
問題:使用cmd命令行工具,執行命令mysql -u root -p 登陸mysql時,報出上面錯誤,無法連接到MySql服務
解決:①、 在開始菜單中找到計算機管理,在計算機管理中找到【服務】,在服務中檢查是否存在MySql服務
②、 如果在步驟①中找不到MySql服務,則需要手動安裝MySql服務,安裝命令mysqld -install,安裝成功會提示
Service successfully installed,由於本機中已經安裝了MySql服務,則是如下提示
③、無法啟動服務,緊跟着還有一個報錯:本地計算機上的MySQL服務啟動后停止。某些服務在未由其他服務或程序
使用時將自動停止,
④、 首先務必使用管理員權限進入到命令行、務必使用管理員權限進入到命令行、務必使用管理員權限進入到命令行,
重要的事情說三遍,不然的話就會出現“發生系統錯誤 拒絕訪問。”這樣的錯誤,
⑤、之后進入到MySQL安裝目錄下,找到bin目錄,一般來說,
MySQL的安裝默認路徑是:C:\Program Files\MySQL\My
SQL Server 5.7\bin,
⑥、之后進行初始化data目錄。如果在與bin目錄同級的文件夾下沒有data文件夾的話,
則創建一個data空目錄,名字務必為data。
如果有該目錄的話,記得要清空data目錄下的所有初始文件,
⑦、之后到bin目錄下執行命令(管理員身份打開命令行窗口):mysqld –-initialize,如下圖所示
⑧、之后就可以看到MySQL服務順利啟動。
而且在狀態欄的MySQL Notifier中也會彈出提示,如下圖所示,MySQL的狀態變為從停止變為啟動。
2、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
問題:不知道為啥,我時不時通過命令行窗口再次登錄數據庫(命令為:mysql –u root -p)會突然出現錯誤
報錯為:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),如下圖所示。
解決:①、如果這個錯誤是接着上個問題出現的,那就是因為MySQL初始化之后,
生成了一個初始密碼,放在了data文件夾下以.err為后綴的文件夾下,如下圖所示。
②、 將初始化密碼進行復制,粘貼到MySQL登錄的密碼中去,如下圖所示。 此時可以看到,順利進入到了MySQL。
③、但是直接輸入MySQL的簡單命令之后,發現並不能操作數據庫,
會提示報錯:ERROR 1820 (HY000): You must reset your password using ALTER USER statement
before executing this statement.,
如下圖所示。
④、 這個報錯的意思是告訴你重設密碼,此時只需要輸入命令重新設置密碼即可。
MySQL重設密碼的方法網上有很多是,例如:alter user 'root'@'localhost' identified by '123456';,
其中123456是重設的密碼,大家可以自定義的,順利設置完成之后記得刷新權限:flush privileges;,。
注:如果1045問題單獨出現,
網上大多解決方法如下,但我每次出現該問題使用“skip-grant-tables”方法都沒得用,
我每次重新初始化data文件,重新生成個密碼,在登陸MySql即可(問題1的⑥+問題2的①②)
網上方法:
1.打開MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存並關閉文件。
(WIN7默認安裝,my.ini在C:\ProgramData\MySQL\MySQL Server 8.0)
2.重啟MySQL服務。
3.通過命令行進入MySQL的BIN目錄,輸入“mysql -u root -p”(不輸入密碼),提示輸入密碼不用管,
2.重啟MySQL服務。
3.通過命令行進入MySQL的BIN目錄,輸入“mysql -u root -p”(不輸入密碼),提示輸入密碼不用管,
直接Enter回車即可進入數據庫。(WIN7默認安***IN目錄為:C:\Program Files\MySQL\MySQL Server 8.06\bin)
4.執行“use mysql;”,使用mysql數據庫。
5.執行“update user set password=PASSWORD("123456") where user='root';”(修改root的密碼)
6.打開MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存並關閉文件。
7.重啟MySQL服務。
8.在命令行中輸入“mysql -u root -p ”,輸入密碼即可成功連接數據庫。
4.執行“use mysql;”,使用mysql數據庫。
5.執行“update user set password=PASSWORD("123456") where user='root';”(修改root的密碼)
6.打開MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存並關閉文件。
7.重啟MySQL服務。
8.在命令行中輸入“mysql -u root -p ”,輸入密碼即可成功連接數據庫。
