用Docker搭建MySQL

1. 拉取鏡像

docker pull mysql:latest

2. 建立相關(guān)目錄

建立配置、數(shù)據(jù)、日志目錄

mkdir -p /mysql_test/mysql/config
mkdir -p /mysql_test/mysql/data
mkdir -p /mysql_test/mysql/log

修改log目錄的所屬用戶,其實(shí)data也是要改的,但是data會(huì)自動(dòng)改。

cd /mysql_test/mysql
sudo chown 999 log

3. 建立配置文件

cd /mysql_test/mysql/config
vim my.cnf

my.cnf內(nèi)容,這里只配了個(gè)錯(cuò)誤日志路徑

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
skip-host-cache
skip-name-resolve
log-error=/var/log/mysql/error.log

4. 建個(gè)密碼配置文件,為了docker啟動(dòng)腳本中不出現(xiàn)密碼明文

mkdir -p /mysql_test/mysql/config/secrets
echo "1234567" > /mysql_test/mysql/config/secrets/password

5. 編寫啟動(dòng)腳本

vim run_mysql_test2.sh

腳本內(nèi)容

docker run --name mysql_test2 \
        -h mysql_test2 \
        -p 0.0.0.0:4000:3306 \
        -v /mysql_test/mysql/config:/etc/mysql/conf.d \
        -v /mysql_test/mysql/data:/var/lib/mysql \
        -v /mysql_test/mysql/log:/var/log/mysql \
        -e MYSQL_ROOT_PASSWORD_FILE=/etc/mysql/conf.d/secrets/password \
        --restart=always \
        -d mysql:latest \

腳本解讀

--name mysql_test2 # 容器名
-h mysql_test2 # 容器host名
-p 0.0.0.0:4000:3306 # 端口映射
-v /mysql_test/mysql/config:/etc/mysql/conf.d # 配置文件目錄映射
-v /mysql_test/mysql/data:/var/lib/mysql # 數(shù)據(jù)目錄映射
-v /mysql_test/mysql/log:/var/log/mysql # 日志目錄映射
-e MYSQL_ROOT_PASSWORD_FILE=/etc/mysql/conf.d/secrets/password # 指定root密碼文件
--restart=always # 隨docker啟動(dòng)
-d mysql:latest # 后臺(tái)啟動(dòng)mysql:latest

6. 啟動(dòng)容器

sh run_mysql_test2.sh

7.連接數(shù)據(jù)庫

這里使用的是Navicat工具,Navicat安裝可以參考https://www.bilibili.com/read/cv17235251

新建mysql鏈接,填入連接名、地址、端口、用戶名、密碼


image.png

測(cè)試連接,顯示連接成功就ok了


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容