DataBase - 初次使用MySQL中遇到的一系列問題

這裏所遇的問題是基於我之前的 MySQL下載、安裝、配置 之上歸納而來的,如果你的安裝方式本身就存在問題,可以線看看我之前寫的安裝方式,當然 ~ 這裏的問題是通解的 ~

MySQL安裝好了之後,一般都會使用可視化工具進行管理使用,這裏主要講了我在使用 Navicat 首次連接 MySQL 的所遇問題與解決方式 ~

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章