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_user
和user_password
:使用者名稱稱和密碼,可根據需要修改。%
表示允許從任意主機訪問資料庫,如果只允許特定主機訪問,可以將%
替換為主機 IP。
8. 配置 MySQL 的遠端訪問(可選)
如果需要從其他裝置連線到 MySQL 資料庫,可以編輯 MySQL 的配置檔案,允許遠端訪問。預設情況下,MySQL 只允許本地連線。
-
使用以下命令啟動容器時掛載 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
-
修改
my.cnf
配置檔案,確保bind-address
為0.0.0.0
:[mysqld] bind-address = 0.0.0.0
-
重啟 MySQL 容器,使配置生效:
docker restart mysql-container
9. 連線 MySQL
可以透過 mysql-client
或其他資料庫管理工具(如 DBeaver、MySQL Workbench)連線到 MySQL 資料庫:
- 主機:虛擬機器或伺服器 IP 地址
- 埠:3306
- 使用者名稱:
root
或自定義使用者 - 密碼:在容器啟動時設定的密碼
總結
以上是透過 Docker 在 Manjaro 中安裝並配置 MySQL 的步驟,概括為:
- 安裝 Docker 並啟動。
- 拉取 MySQL 映象。
- 配置資料持久化和執行容器。
- 建立資料庫和使用者,並設定遠端訪問(如有需要)。
這種方式可以將 MySQL 部署在 Docker 容器中,享受環境隔離、便捷管理和持久化儲存的優勢。