參考博客:https://blog.csdn.net/WinstonLau/article/details/78666423 我的系統和軟體版本是這樣的: 系統環境:win7、64位 MySQL版本:8.0.11 對版本的說明 之所以說是 MySQL5.7 及以上版本,是因為從 MySQL5.7 版 ...
參考博客:https://blog.csdn.net/WinstonLau/article/details/78666423
我的系統和軟體版本是這樣的:
系統環境:win7、64位
MySQL版本:8.0.11
對版本的說明
- 之所以說是 MySQL5.7 及以上版本,是因為從 MySQL5.7 版本之後,其安全機制有所改變。在安裝完成後,登陸 MySQL 時,需要輸入一個密碼,這個密碼其實是在配置 MySQL 的過程中生成的一個隨機密碼,而我們必須找到這個隨機密碼才能登陸 MySQL。而在 5.7 之前的版本並不需要這樣做,因此對於 5.7 之前的版本,本教程可能並不完全適用,不過網上有很多,如果需要可以自己搜索。
系統環境
- win10、64位
MySQL版本
- 8.0.11免安裝版
MySQL下載地址 https://dev.mysql.com/downloads/mysql/
- 在下載頁面往下拉,選擇自己的操作系統版本和位數,然後下載即可
MySQL安裝
- 由於這裡選擇的 MySQL 是免安裝版的,所以解壓就是安裝,將 MySQL 解壓到自己想放的位置即可
環境配置
-
1、在環境變數 Path 中添加 MySQL 解壓後的 bin 目錄所在的路徑,比如我的是:
D:\mysql-5.7.20-winx64\bin
- 2、以管理員身份運行 cmd (將滑鼠放在屏幕左下角的 windows 圖標上,點擊滑鼠右鍵,選擇命令提示符(管理員)(A)即可),輸入
D:
,然後回車,進入 D 盤( MySQL 解壓後所在的盤 )
- 3、繼續進入 MySQL 中的 bin 目錄,輸入下麵這條命令:
cd mysql-8.0.11-winx64\bin
這裡需要註意一點就是:
- 1、這裡的路徑以及名稱要和自己電腦上的一致
4、安裝 MySQL,輸入下麵這條命令
mysqld -install
註意:
-
1、如果在這一步提示 mysqld 不是內部或外部命令,也不是可運行的程式或批處理文件,以我個人的經驗來看,是因為在 bin 目錄下沒有 mysqld.exe 這個應用程式,而導致沒有這個的原因可能就是版本不對,或者版本是一樣的,
但下載的是帶 Debug Binaries & Test Suite 字樣的,帶著個字樣的,bin 裡面是沒有 mysqld.exe 的
-
2、順便說一下,移除 MySQL 服務的命令是:
mysqld -remove
5、接著輸入:
mysqld --initialize
- 1、然後回車(可能需要等待一會),這時在 MySQL 的根目錄下會生成一個 data 文件夾,註意裡面的一個以 .err 結尾的文件,初始密碼就在這個文件里(可以按 Ctrl+F 搜索 password 找到密碼),這個初始密碼後續會用到
6、配置MySQL的啟動文件
-
1.如果解壓後的 MySQL 中有一個名為 my-default.ini 的文件,則在配置文件中輸入以下幾項:
basedir=D:\mysql-8.0.11-winx64 datadir=D:\mysql-8.0.11-winx64\data port=3306
註意:
- 1.這裡的路徑和名稱仍然需要和自己電腦上的一致
2、如果解壓後的 MySQL 中沒有一個名為 my-default.ini 的文件,則自己在根目錄下新建一個名為 my.ini 的文件,然後選中該文件,點擊滑鼠右鍵,選擇用記事本打開,在其中輸入:
[mysqld] basedir=D:\mysql-8.0.11-winx64 datadir=D:\mysql-8.0.11-winx64\data port=3306
輸入完成後,點擊保存,關閉即可。
7、啟動 MySQL 服務:進入 MySQL 的 bin 目錄(經過前面的步驟,此時正處於 MySQL 的 bin 目錄下),輸入:
net start mysql
8、登陸 MySQL,接著輸入下麵這條命令:
mysql -u root -p
從上圖可以看出,這裡要求我們輸入密碼,這個密碼就是 MySQL 自動生成的初始密碼,這一點在上面第5步中已經提到過。找到以 .err 結尾的那個文件,選擇用記事本打開,然後在文件內搜索 password,可以看到如下的搜索結果,紅線框出來的部分就是初始密碼(每個用戶生成的密碼都不一樣,把自己的那個找到即可)
將這個初始密碼複製下來,然後輸入 cmd 中,如果看到下圖所示的界面,說明 MySQL 已經配置成功了
9、修改初始密碼
為了方便記憶密碼以及出於安全性的考慮,我們可以重新設置 MySQL 的登陸密碼,在成功完成了第 8 步之後,我們接著輸入
set password for root@localhost=password('xxxxxx');
註意:
-
單引號中的 xxxxxx 代表你設置的密碼,可以自己更改
-
語句後面的分號也需要輸入,如果第一次沒有輸入,在回車之後,接著再輸入分號也可以
-
不同版本的修改密碼的格式是不一樣的,儘管都是 5.7 及以上的版本,比如對於
8.0.11
的這個版本,修改密碼的格式為:ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';
,其中的 xxxxxx 代表你要設置的密碼 -
如果不知道該用什麼樣的格式,可以在用初始密碼登陸之後,修改初始密碼之前,輸入
use mysql;
命令,這時系統就會提示你要先修改初始密碼才能繼續使用,在這個提示中就提到了用什麼格式來修改密碼,當然這裡只會告訴你其中的關鍵字,不過有了這個關鍵字,其完整的語法格式,我們就可以百度得到
如果密碼設置成功,會出現下圖中的界面:
10、退出 MySQL:接著輸入
quit
11、使用新密碼登陸(必須處於 MySQL 的 bin 目錄下),輸入
mysql -u root -p
- 1.接著再輸入剛設置的新密碼,回車,登陸成功
至此 MySQL 已經配置成功,並且修改了初始密碼,可以盡情使用了!
親測以上方法可行
本人在安裝配置完成過後,想通過Navicat鏈接本地資料庫的時候發現問題
1、Navicat在連接資料庫MySQL時報錯2059
- 解釋原因:據說,mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password, 解決問題方法有兩種,一種是升級navicat驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password. 現在說第二種方式
- 命令行進入MySQL資料庫
- 輸入以下指令,逐行輸入,每行後加一個回車
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼
- FLUSH PRIVILEGES; #刷新許可權
就像這樣
5.然後按理說應該是可以了,祝君好運。
6.Tips:命令行中用的“password”即為更新後的資料庫密碼,可改為自己想設置的密碼,比如“123”什麼的,之後再用Navicat連接MySQL就連接成功了,親測可用!!!