Docker安裝MySQL並使用Navicat連接

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;

Navicat連接MySQL測試:

 

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