Linux環境下透過docker安裝mysql

Gold_stein發表於2024-11-03

Linux環境下透過docker安裝mysql

Content

在 Manjaro 中,可以使用 Docker 來安裝和配置 MySQL。以下是詳細步驟,包括如何拉取 MySQL 映象、執行容器、配置持久化儲存和基本的安全設定。

1. 安裝 Docker

首先確保 Docker 已安裝並正在執行:

# 更新系統並安裝 Docker
sudo pacman -Syu docker

# 啟動 Docker 服務
sudo systemctl start docker

# 設定 Docker 開機自啟
sudo systemctl enable docker

2. 拉取 MySQL 映象

在 Docker 中使用 MySQL,只需拉取 MySQL 官方映象即可:

# 拉取最新版本的 MySQL 映象
docker pull mysql:latest

3. 建立資料卷(可選)

為了防止 MySQL 資料在容器刪除時丟失,建議建立一個資料卷或將主機目錄掛載到容器中,實現資料持久化。

# 建立 MySQL 資料卷
docker volume create mysql_data

4. 執行 MySQL 容器

使用 docker run 命令啟動 MySQL 容器,並配置必要的引數,如 root 密碼、埠對映和資料卷。

docker run -d \
    --name mysql-container \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    -v mysql_data:/var/lib/mysql \
    mysql:latest
  • 引數說明
    • -d:以守護程序模式執行容器。
    • --name mysql-container:指定容器名稱,可以自定義。
    • -p 3306:3306:將主機的 3306 埠對映到容器的 3306 埠,以便在主機上訪問 MySQL。
    • -e MYSQL_ROOT_PASSWORD=my-secret-pw:設定 MySQL 的 root 使用者密碼,將 my-secret-pw 替換為你的自定義密碼。
    • -v mysql_data:/var/lib/mysql:將主機的 mysql_data 卷掛載到容器中的 /var/lib/mysql,以實現資料持久化。

5. 檢查 MySQL 容器狀態

可以使用以下命令檢視容器狀態,確保 MySQL 正在執行:

docker ps

如果容器啟動成功,可以看到 mysql-container 正在執行,且對映了 3306 埠。

6. 進入 MySQL 容器並配置 MySQL

可以透過以下命令進入 MySQL 容器:

docker exec -it mysql-container mysql -u root -p

輸入你設定的 root 密碼,即可進入 MySQL 控制檯,進行資料庫和使用者的配置。

7. 建立資料庫和使用者(可選)

在 MySQL 控制檯中,建立資料庫和使用者:

-- 建立一個資料庫
CREATE DATABASE my_database;

-- 建立使用者並授予許可權
CREATE USER 'my_user'@'%' IDENTIFIED BY 'user_password';
GRANT ALL PRIVILEGES ON my_database.* TO 'my_user'@'%';
FLUSH PRIVILEGES;
  • my_database:資料庫名稱。
  • my_useruser_password:使用者名稱稱和密碼,可根據需要修改。
  • % 表示允許從任意主機訪問資料庫,如果只允許特定主機訪問,可以將 % 替換為主機 IP。

8. 配置 MySQL 的遠端訪問(可選)

如果需要從其他裝置連線到 MySQL 資料庫,可以編輯 MySQL 的配置檔案,允許遠端訪問。預設情況下,MySQL 只允許本地連線。

  1. 使用以下命令啟動容器時掛載 MySQL 配置檔案:

    docker run -d \
        --name mysql-container \
        -p 3306:3306 \
        -e MYSQL_ROOT_PASSWORD=my-secret-pw \
        -v mysql_data:/var/lib/mysql \
        -v /path/to/my.cnf:/etc/mysql/my.cnf \
        mysql:latest
    
  2. 修改 my.cnf 配置檔案,確保 bind-address0.0.0.0

    [mysqld]
    bind-address = 0.0.0.0
    
  3. 重啟 MySQL 容器,使配置生效:

    docker restart mysql-container
    

9. 連線 MySQL

可以透過 mysql-client 或其他資料庫管理工具(如 DBeaver、MySQL Workbench)連線到 MySQL 資料庫:

  • 主機:虛擬機器或伺服器 IP 地址
  • :3306
  • 使用者名稱root 或自定義使用者
  • 密碼:在容器啟動時設定的密碼

總結

以上是透過 Docker 在 Manjaro 中安裝並配置 MySQL 的步驟,概括為:

  1. 安裝 Docker 並啟動。
  2. 拉取 MySQL 映象。
  3. 配置資料持久化和執行容器。
  4. 建立資料庫和使用者,並設定遠端訪問(如有需要)。

這種方式可以將 MySQL 部署在 Docker 容器中,享受環境隔離、便捷管理和持久化儲存的優勢。

相關文章