欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker安裝MySQL并使用Navicat連接的使用示例

 更新時(shí)間:2023年10月09日 09:55:38   作者:mortal???  
在Docker里運(yùn)行MySQL的方式還是很方便的,本文主要介紹了Docker安裝MySQL并使用Navicat連接的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下

1. 拉取 MySQL 鏡像

在沒有拉取 MySQL 鏡像之前的鏡像列表:

  • 可以通過下面的命令拉取 MySQL 鏡像:
docker pull mysql

這將下載最新版本的 MySQL 鏡像到虛擬機(jī)中。

2. 創(chuàng)建并運(yùn)行一個(gè) MySQL 容器

docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql

參數(shù)說明:

  • –name:指定了容器的名稱,方便之后進(jìn)入容器的命令行。
  • -itd:其中,i 是交互式操作,t 是一個(gè)終端,d 指的是在后臺(tái)運(yùn)行。
  • -p:指在本地生成一個(gè)隨機(jī)端口,用來映射 mysql 的 3306 端口。
  • -e:設(shè)置環(huán)境變量。
  • MYSQL_ROOT_PASSWORD=root123456:指定了 MySQL 的 root 密碼。
  • -d mysql:指運(yùn)行 mysql 鏡像,設(shè)置容器在在后臺(tái)一直運(yùn)行。

運(yùn)行截圖:

【補(bǔ)充知識(shí)】:

在 Docker 中,使用 -e 參數(shù)可以設(shè)置環(huán)境變量。環(huán)境變量是影響容器運(yùn)行時(shí)行為的一些配置值。這些值可以在容器內(nèi)部使用,例如在應(yīng)用程序中訪問數(shù)據(jù)庫(kù)時(shí),可以使用環(huán)境變量來指定數(shù)據(jù)庫(kù)連接信息。

下面是一些使用 -e 參數(shù)運(yùn)行 Docker 容器時(shí)的示例:

  • 設(shè)置單個(gè)環(huán)境變量:

    docker run -e VAR_NAME=VAR_VALUE image_name

    這將在容器中設(shè)置一個(gè)名為 VAR_NAME 的環(huán)境變量,其值為 VAR_VALUE。

  • 設(shè)置多個(gè)環(huán)境變量:

    docker run -e VAR1_NAME=VAR1_VALUE -e VAR2_NAME=VAR2_VALUE image_name

    這將在容器中設(shè)置兩個(gè)環(huán)境變量 VAR1_NAME 和 VAR2_NAME,分別對(duì)應(yīng)的值為 VAR1_VALUE 和 VAR2_VALUE。

  • 從環(huán)境變量文件設(shè)置:

    docker run --env-file env_file_name image_name

    env_file_name 是包含環(huán)境變量鍵值對(duì)的文件。每行應(yīng)該包含一個(gè)鍵值對(duì),例如 VAR_NAME=VAR_VALUE。Docker 將讀取文件中的鍵值對(duì),并在容器中設(shè)置相應(yīng)的環(huán)境變量。

通過設(shè)置環(huán)境變量,可以在容器中配置應(yīng)用程序所需的各種參數(shù),例如數(shù)據(jù)庫(kù)連接字符串、API密鑰等。這樣可以輕松地在不同環(huán)境中部署容器,而無需對(duì)應(yīng)用程序的配置進(jìn)行硬編碼。

3. 驗(yàn)證MySQL容器是否創(chuàng)建并運(yùn)行成功

docker ps

3.1 進(jìn)入 MySQL 容器

docker exec -it mysql-test /bin/bash

3.2 進(jìn)入 MySQL

mysql -uroot -p
Enter password:root123456

3.3 查看 host 和 user

select host,user from mysql.user;

  • 確保 root 的 host 為 % 即代表可以遠(yuǎn)程連接。

4. MySQL 開啟遠(yuǎn)程訪問權(quán)限

4.1 切換數(shù)據(jù)庫(kù)

注意:默認(rèn)應(yīng)該就是這個(gè),不切換也行,保險(xiǎn)起見還是切換一下

use mysql;

4.2 給 root 用戶分配遠(yuǎn)程訪問權(quán)限

GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

參數(shù)說明:

  • GRANT:賦權(quán)命令
  • ALL PRIVILEGES:當(dāng)前用戶的所有權(quán)限
  • ON:介詞
  • .:當(dāng)前用戶對(duì)所有數(shù)據(jù)庫(kù)和表的相應(yīng)操作權(quán)限
  • TO:介詞
  • ‘root’@’%’:權(quán)限賦給 root 用戶,所有 ip 都能連接
  • WITH GRANT OPTION:允許級(jí)聯(lián)賦權(quán)

4.3 強(qiáng)制刷新權(quán)限

FLUSH PRIVILEGES;

5. 服務(wù)器配置 3306 的開放端口

windows 如何開放端口

  • 在虛擬機(jī)上開放 3306 端口,允許 MySQL 的入站連接,可以使用以下命令通過防火墻允許入站連接:

    ufw allow 3306

6. 查看 Ubuntu IP

# 查看 IP 地址
ip addr
# 也可以用這個(gè)命令
ifconfig

7. 可能出現(xiàn)的問題

  • 可能出現(xiàn)的問題截圖

img

  • 問題出現(xiàn)原因

這是因?yàn)?MySQL8 之前密碼加密規(guī)則為 mysql_native_password,而 MySQL8 之后的加密規(guī)則為 caching_sha2_password,也就是說,如果要用 Navicat 連接 MySQL,其實(shí)只需要將密碼規(guī)則改回 mysql_native_password 即可;

  • 解決辦法如下

7.1 進(jìn)入 MySQL 數(shù)據(jù)庫(kù)

docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456

7.2 選擇數(shù)據(jù)庫(kù)

use mysql;

7.3 更改密碼加密方式

IDENTIFIED BY ‘root123456’:連接時(shí)輸入密碼,密碼為 root123456

ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER;

7.4 更新用戶密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';

7.5 刷新權(quán)限

FLUSH PRIVILEGES;

運(yùn)行截圖:

8. Navicat 連接 MySQL 測(cè)試

到此這篇關(guān)于Docker安裝MySQL并使用Navicat連接的使用示例的文章就介紹到這了,更多相關(guān)Docker MySQL并使用Navicat連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論