1,下載Mysql
免安裝版本:
https://dev.mysql.com/downloads/mysql/
https://downloads.mysql.com/archives/community/
下載完後,我們將 zip 包解壓到相應的目錄,這裏我將解壓後的文件夾放在 C:\web\mysql-8.0.11 下(這裏自定義就行,路徑中間不要有空格和中文)。
接下來我們需要配置下 MySQL 的配置文件
打開剛剛解壓的文件夾 C:\web\mysql-8.0.11 ,在該文件夾下創建 mysql.ini 配置文件,編輯 mysql.ini 配置以下基本信息:
[client] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] # 設置3306端口 port = 3306 # 設置mysql的安裝目錄 basedir=C:\\web\\mysql-8.0.11 # 設置 mysql數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成一個data文件夾存放數據,否則有可能報錯 # datadir=C:\\web\\sqldata #注意,這行在 8.0+ 版本不需要,系統自動生成 # 允許最大連接數 max_connections=20 # 服務端使用的字符集默認爲8比特編碼的latin1字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB
2,配置mysql環境變量
上面安裝的是時候我們看到mysql安裝路徑是:C:\mysql-8.0.23-winx64
我的電腦-->右鍵—>屬性-->高級系統設置-->環境變量-->系統變量
新建 MYSQL_HOME,路徑選擇mysql 解壓目錄
然後找到 Path 路徑,在 Path 變量中添加--> ;%MYSQL_HOME%\bin;
3,接下來我們來啓動下 MySQL 數據庫:
以管理員身份打開 cmd 命令行工具,切換目錄:
cd C:\mysql-8.0.23-winx64\bin
初始化數據庫: (此時會生成data目錄)
mysqld --initialize --console
執行完成後,會輸出 root 用戶的初始默認密碼,如:
... 2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ ...
APWCY5ws&hjQ 就是初始密碼,root 是用戶名,後續登錄需要用到,你也可以在登陸後修改密碼
輸入以下安裝命令:mysql 可以省略不寫,默認名字就是 mysql
mysqld --install mysql
要啓動 輸入以下命令即可:
net start mysql
如果初始化失敗(沒有出現密碼即爲失敗) 則依次執行: net stop mysql (停止運行) mysqld --remove mysql (移除安裝) 手動刪掉 data文件夾 重新安裝
(忘了密碼可以手動刪掉data文件夾重新初始化)
登錄 MySQL
當 MySQL 服務已經運行時, 我們可以通過 MySQL 自帶的客戶端工具登錄到 MySQL 數據庫中, 首先打開命令提示符, 輸入以下格式的命名:
mysql -h 主機名 -u 用戶名 -p
參數說明:
- -h : 指定客戶端所要登錄的 MySQL 主機名, 登錄本機(localhost 或 127.0.0.1)該參數可以省略;
- -u : 登錄的用戶名;
- -p : 告訴服務器將會使用一個密碼來登錄, 如果所要登錄的用戶名密碼爲空, 可以忽略此選項。
如果我們要登錄本機的 MySQL 數據庫,只需要輸入以下命令即可:
mysql -u root -p
按回車確認, 如果安裝正確且 MySQL 正在運行, 會得到以下響應:
Enter password:
退出登陸 exit; (要帶分號)
修改密碼
執行如下命令修改密碼,例如:修改新密碼爲: 123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges; #每次修改數據之後都要執行該句命令
注意:注意需要執行 FLUSH PRIVILEGES 語句。 這個命令執行後會重新載入授權表。
如果你不使用該命令,你就無法使用新創建的用戶來連接mysql服務器,除非你重啓mysql服務器。
退出之後,用新密碼重新登陸,成功登陸!
其他命令
在user表中創建賬號
create user 'root'@'%' identified by 'root123';
查看數據庫中的用戶權限表
select host, user, authentication_string, plugin from user;
如果查看user表的root用戶Host字段是 localhost,說明root用戶只能本地登錄,
現在把他改成遠程登錄,執行如下命令,將localhost 修改爲 % 符號
update user set host='%' where user='root';
給指定IP授權遠程訪問,localhost 指只允許本地訪問,
#localhost 表示只允許本地訪問
grant all privileges on *.* to 'root'@'localhost' with grant option;
# 允許所有 ip 遠程訪問(危險!) grant all privileges on *.* to 'root'@'%' with grant option;
在另外一臺服務器上,使用 Navicat 連接 Mysql 8.0 +版本的服務,出現如下錯誤!
查找問題後發現
MySQL8.0 之前的版本密碼加密規則:mysql_native_password,
MySQL8.0 密碼加密規則:caching_sha2_password
把mysql用戶登錄密碼加密規則還原成 mysql_native_password.
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges; #刷新命令 這樣就無需重啓服務
遠程客戶端重新鏈接
如果因爲防火牆的問題導致連接不上,需要添加入站規則,設置 3306 端口
參考文檔:
https://www.runoob.com/mysql/mysql-install.html 安裝文檔
https://www.runoob.com/w3cnote/windows10-mysql-installer.html Windows下安裝文檔
https://blog.csdn.net/id145/article/details/103114904 參考文檔