最近在學習node.js,少不得要跟數據庫打交道,於是打算安裝一個數據庫軟件,在mongedb和mysql之間選擇了mysql。作為一個數據庫新人不敢評論孰好孰壞,最后選擇mysql純屬因為公司在用mysql,而且有個數據庫大神可以指導學習。按照網上的教程,可能是新版本的原因,關於root密碼重置總是有一些問題,所以結合自己的安裝過程就有了此篇博客,好了,廢話不多說,下面進入正題。
1.1. 下載:
官網下載zip包,我下載的是64位的:
下載地址:https://dev.mysql.com/downloads/mysql/
下載zip的包:
下載后解壓:(解壓在哪個盤都可以的)
我放在了這里 E:\web\mysql-8.0.11-winx64 ,順便縮短了文件名,所以為 E:\web\mysql-8.0.11。
1.2. 配置環境變量:
進入 計算機--高級系統設置--高級--環境變量
然后新建系統變量
變量值改為自己mysql解壓的路徑
變量名:MYSQL_HOME
變量值:E:\web\mysql-8.0.11
path里添加:%MYSQL_HOME%\bin;(分號不要忘記)
1.3. 生成data文件:
以管理員身份運行cmd
程序--輸入cmd 找到cmd.exe 右鍵以管理員身份運行
進入E:\web\mysql-8.0.11\bin 下
執行命令:mysqld --initialize-insecure --user=mysql 在E:\web\mysql-8.0.11目錄下生成data目錄
1.4. 啟動服務:
執行命令:net start mysql 啟動mysql服務,若提示:服務名無效...(請看步驟:1.5);
1.5. 解決啟動服務失敗(報錯):
提示:服務名無效
解決方法:
執行命令:mysqld -install 即可(不需要my.ini配置文件 注意:網上寫的很多需要my.ini配置文件,其實不需要my.ini配置文件也可以,我之前放置了my.ini文件,反而提示服務無法啟動,把my.ini刪除后啟動成功了)
若出現提示“服務正在啟動或停止中,請稍后片刻后再重試一次”,需要去資源管理器中把mysql進程全結束了,重新啟動即可。
1.6. 登錄mysql:
登錄mysql:(因為之前沒設置密碼,所以密碼為空,不用輸入密碼,直接回車即可)
E:\mysql-5.7.20-winx64\bin>mysql -u root -p
Enter password:
1.7. 查詢用戶密碼:
查詢用戶密碼命令:mysql> select host,user,authentication_string from mysql.user;
host: 允許用戶登錄的ip‘位置’%表示可以遠程;
user:當前數據庫的用戶名;
authentication_string: 用戶密碼(后面有提到此字段);
1.8. 設置(或修改)root用戶密碼:
默認root密碼為空的話 ,下面使用navicat就無法連接,所以我們需要修改root的密碼。
這是很關鍵的一步。此處踩過N多坑,后來查閱很多才知道在mysql 5.7.9以后廢棄了password字段和password()函數;authentication_string:字段表示用戶密碼。
下面直接演示正確修改root密碼的步驟:
一、如果當前root用戶authentication_string字段下有內容,先將其設置為空,否則直接進行二步驟。
-
- use mysql;
- update user set authentication_string='' where user='root'
- 下面直接演示正確修改root密碼的步驟:
二、使用ALTER修改root用戶密碼,方法為 ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼'。如下:
-
- ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'
此處有兩點需要注意:1、不需要flush privileges來刷新權限。2、密碼要包含大寫字母,小寫字母,數字,特殊符號。
修改成功; 重新使用用戶名密碼登錄即可;
注意: 一定不要采取如下形式該密碼:
- use mysql;
- update user set authentication_string="newpassword" where user="root";
這樣會給user表中root用戶的authentication_string字段下設置了newpassword值;
當再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'時會報錯的;
因為authentication_string字段下只能是mysql加密后的41位字符串密碼;其他的會報格式錯誤;
*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
至此,安裝mysql和修改root密碼告一段落。開始navicat for mysql篇。
時間有限,navicat的下載和破解注冊就不多講了 有需要的下面留郵箱,發給你們,下面說說出問題的地方。
賬號密碼都正確,連接報錯1251。OK 我們先來看看這個改動:
在MySQL 8.04前,執行:SET PASSWORD=PASSWORD('[新密碼]');但是MySQL8.0.4開始,這樣默認是不行的。因為之前,MySQL的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”。
so,我們這里需要再次修改一次root密碼。
先登錄進入mysql環境:執行下面三個命令。(記得帶上分號)
1、use mysql;
2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
3、FLUSH PRIVILEGES;
OK.現在再去重連。perfect!
折騰了這么久,總算可以開始我的SQL之路了,撒花!撒花!撒花!
本來准備好的有截圖說明,發現插入圖片失敗,就先這樣吧。
大家有問題的可以下面交流,跪求各位數據庫大神多多照顧,手下留情。