目錄
- MySQL簡單介紹:
- 查看可用的MySQL版本:
- 拉取最新版本的MySQL鏡像:
- 驗證MySQL鏡像是否成功拉取到本地:
- 創建并運行一個MySQL容器:
- 驗證MySQL容器是否創建并運行成功:
- 1、進入MySQL容器:
- 2、進入MySQL:
- MySQL開啟遠程訪問權限:
- 1、切換數據庫
- 2、給root用戶分配遠程訪問權限
- 3、強制刷新權限
- 服務器配置3306的開放端口:
- 錯誤問題原因:
- 解決方法:
- 1.進入MySQL數據庫
- 2.選擇數據庫
- 3.更改密碼加密方式
- 4.更新用戶密碼
- 5.刷新權限
- Navicat連接MySQL測試:
MySQL簡單介紹:
MySQL 是一個開放源碼的關系數據庫管理系統,開發者為瑞典 MySQL AB 公司。目前 MySQL 被廣泛地應用在 Internet 上的大中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了 MySQL 作為網站數據庫。
查看可用的MySQL版本:
訪問DokcerHub中的MySQL鏡像庫地址:https://hub.docker.com/_/mysql/tags
可以通過 Sort by 查看其他版本的MySQL,查看最新版本MySQL鏡像(mysql:latest):https://hub.docker.com/_/mysql/tags?page=1&name=latest
此外,我們還可以用docker search mysql
命令來查看可用版本:
拉取最新版本的MySQL鏡像:
docker pull mysql:latest
注意:tag是可選的,tag表示標簽,多為軟件的版本,默認是latest版本(最新版)
驗證MySQL鏡像是否成功拉取到本地:
使用以下命令來查看mysql鏡像是否成功拉取到本地:
docker images
創建并運行一個MySQL容器:
docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql
參數說明:
- –name:指定了容器的名稱,方便之后進入容器的命令行。
- -itd:其中,i是交互式操作,t是一個終端,d指的是在后臺運行。
- -p:指在本地生成一個隨機端口,用來映射mysql的3306端口。
- -e:設置環境變量。
- MYSQL_ROOT_PASSWORD=root123456:指定了MySQL的root密碼
- -d mysql:指運行mysql鏡像,設置容器在在后臺一直運行。
驗證MySQL容器是否創建并運行成功:
docker ps
1、進入MySQL容器:
docker exec -it mysql-test /bin/bash
2、進入MySQL:
mysql -uroot -p Enter password:root123456
MySQL開啟遠程訪問權限:
1、切換數據庫
注意:默認應該就是這個,不切換也行,保險起見還是切換一下
use mysql;
2、給root用戶分配遠程訪問權限
GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
參數說明:
- GRANT:賦權命令
- ALL PRIVILEGES:當前用戶的所有權限
- ON:介詞
- *.*:當前用戶對所有數據庫和表的相應操作權限
- TO:介詞
- ‘root’@’%’:權限賦給root用戶,所有ip都能連接
- WITH GRANT OPTION:允許級聯賦權
3、強制刷新權限
FLUSH PRIVILEGES;
服務器配置3306的開放端口:
Navicat 連接 MySQL8 報錯:2059 – Authentication plugin ‘caching_sha2_password’ cannot be loaded:xxxx;
錯誤問題原因:
這是因為MySQL8之前密碼加密規則為mysql_native_password,而 MySQL8 之后的加密規則為caching_sha2_password,也就是說,如果要用Navicat連接MySQL,其實只需要將密碼規則改回 mysql_native_password 即可;
解決方法:
1.進入MySQL數據庫
docker exec -it mysql-test /bin/bash mysql -uroot -p Enter password:root123456
2.選擇數據庫
use mysql;
3.更改密碼加密方式
IDENTIFIED BY ‘root123456':連接時輸入密碼,密碼為root123456
ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER;
4.更新用戶密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';
5.刷新權限
FLUSH PRIVILEGES;