這裏所遇的問題是基於我之前的 MySQL下載、安裝、配置 之上歸納而來的,如果你的安裝方式本身就存在問題,可以線看看我之前寫的安裝方式,當然 ~ 這裏的問題是通解的 ~
MySQL安裝好了之後,一般都會使用可視化工具進行管理使用,這裏主要講了我在使用 Navicat 首次連接 MySQL 的所遇問題與解決方式 ~
不醉不罷休
- Look Here:此篇基於 MySql 8.0 ,如沒有配置MySql的環境變量 ,任何cmd命令均需進入到MySql → bin 目錄下執行
- And Here:業餘小技巧
- MySQL啓動服務時提示"服務名無效"
- MySQL 服務無法啓動 & 服務沒有報告任何錯誤
- You must reset your password using ALTER USER statement before executing this statement.
- Install/Remove of the Service Denied!
- 本地計算機上的mysql服務啓動停止後,某些服務在未由其他服務或程序使用時將自動停止
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
- 啓動MySQL報錯:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
- MySql5.7 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
Look Here:此篇基於 MySql 8.0 ,如沒有配置MySql的環境變量 ,任何cmd命令均需進入到MySql → bin 目錄下執行
And Here:業餘小技巧
Windows cmd 命令行清空
因一直在使用cmd試錯,不知不覺太多操作,導致看起來不方便,特出此項 ~
cls
# 一般如斯,此命令只能用於未進入mysql前,如果前綴是 mysql> 那麼你cls是沒用的 ~
C:\WINDOWS\system32>cls
mysql 命令快速退出 -> 循環
問題如下
解決方式
命令尾部加 ; (你沒有看錯就是加 ; 號!在mysql語句中 ; 代表結尾)
;
# 一般如斯
show databases;
結果如下
cmd中退出mysql
# too young , too simple
exit
# 一般如斯
mysql> exit
MySQL啓動服務時提示"服務名無效"
net stop mysql \ net start mysql
錯誤信息
MySql服務沒有安裝
解決方式
管理員方式打開cmd命令
#cmd命令
mysqld --install
擴展命令
# 關閉mysql服務
net stop mysql
# 卸載mysql服務
mysqld -remove
MySQL 服務無法啓動 & 服務沒有報告任何錯誤
錯誤信息
MySQL 服務正在啓動
MySQL 服務無法啓動
服務沒有報告任何錯誤
請鍵入 NET HELPMSG 3534 以獲得更多的幫助
解決方式
1.停止服務
#cmd命令
net stop mysql
2.查看MySQL內是否有data文件夾
- 有:清空data文件夾內的全部內容
- 無:新建data文件夾
3.初始化基礎配置
#cmd命令
mysqld --initialize
4.啓動服務
#cmd命令
net start mysql
如還報此錯,需檢查以下配置
1.是否配置Mysql的環境變量?是否在bin目錄下執行的cmd命令?是否是管理員方式打開的cmd?
2. .ini文件是否配置basedir (mysql所在目錄) ?datadir(mysql所在目錄\data) ?
You must reset your password using ALTER USER statement before executing this statement.
在執行此語句之前,必須使用ALTER USER語句重置密碼。
錯誤信息
首次安裝MySQL後,也是首次進入mysql後,如果需要其他操作,在這之前首先需要重置初始密碼,這個業務邏輯狠常見 ~
You must reset your password using ALTER USER statement before executing this statement.
解決方式
#首次進入重置密碼
alter user 'root'@'localhost' identified by 'password';
#或 (二選一即可)
mysql> set password=password("password");
# 有的人會刷新權限,有的不會,例如我,在設置密碼之後重啓服務重新使用新密碼登錄
mysql> flush privileges;
Install/Remove of the Service Denied!
安裝mysql 所遇報錯 ~
錯誤信息
Install/Remove of the Service Denied
如圖
解決方式
打開cmd.exe程序的時候選擇“用管理員身份打開” ,具體操作如圖所示(Window10)
再次執行mysqld install ,大功告成 ~
本地計算機上的mysql服務啓動停止後,某些服務在未由其他服務或程序使用時將自動停止
錯誤信息
如圖
解決方式
1.刪除原服務
# 刪除原來服務
mysql --remove mysql(一般爲自定義)
2.在MySql的根目錄下, 清空data目錄
如果沒有data目錄,請自行創建一個空目錄,起名爲data ~
3.初始化
# ini文件地址(每個人的安裝目錄和ini文件名不同!別安全copy):C:\Program Files\MySQL Server 8.0\mysql.ini
mysqld --install mysql --defaults-file=C:\Program Files\MySQL Server 8.0\mysql.ini
4.以管理員的身份執行啓動服務命令
net start mysql
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO/YES)
錯誤信息
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'(using password: NO)
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'(using password: YES)
解決方式
Mysql 5.6及以後版本出處於安全考慮,root密碼不爲空;
重點:所以在MySQL的安裝過程中,會生成一個隨機密碼作爲初始密碼;
如果方式一可解決問題,不需要看方式二(曲線救國)
方式一
此方案對我無效
1.打開 MySQL → .ini 文件 → mysqld下添加skip-grant-tables,保存退出
[mysqld]
skip-grant-tables
如圖
2.打開管理員運行的cmd命令,重啓服務
#停止服務
net stop mysql
#啓動服務
net start mysql
3.登錄mysql,修改密碼
# 出現password:的時候直接回車可以進入
mysql -u root -p
Enter password:
# 更新root密碼
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
# 修改權限
mysql> FLUSH PRIVILEGES;
# 退出
mysql> quit
4.打開 MySQL → .ini 文件 → mysqld下刪除之前新增的skip-grant-tables,保存退出
5.重啓mysql
#停止服務
net stop mysql
#啓動服務
net start mysql
6.root用戶使用新密碼進行登錄
mysql -u root -p
Enter password: <輸入新設的密碼newpassword>
方式二
1.MySQL → data → .err → A temporary password is generated for root@localhost: 此處就是生成的隨機密碼(圖中的 pfwu;999rhoP 就是我生成的隨急密碼了)
2.重啓服務後登錄mysql
#停止服務
net stop mysql
#啓動服務
net start mysql
#登錄mysql - pfwu;999rhoP 這裏就是上圖自動生成的隨機密碼
mysql -u root -p
Enter password:pfwu;999rhoP
3.登錄成功,問題解決
啓動MySQL報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
錯誤信息
新手首次安裝常見錯誤,服務連接不到 ~
解決方式
從服務中將MySql的服務設置爲啓動,或關閉此服務從cmd進行啓動
如找不到此項服務,通過 mysqld -install 進行安裝,然後啓動 ~
#啓動服務
net start mysql
MySql5.7 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
此部分只是因爲正好看到了關於這項錯誤的一篇文章,雖然爭對的是5.7的版本,但是本着殺錯不放錯的原則也進行一下記錄 ~
錯誤信息
初始化密碼報錯 ~
解決方式
因在該版本的密碼是有校驗規則的,所以爭對此項有一些配置修改
首先,修改validate_password_policy參數的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
validate_password_length(密碼長度)參數默認爲8,我們修改爲1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
完成之後再次執行修改密碼語句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)