C.4 docker install mysql

安裝mysql鏡像

準備

# 下載mysql鏡像
docker pull mysql:5.6

# 在宿主機創(chuàng)建目錄
mkdir /opt/docker-software/mysql

mysql配置文件設置

在/opt/docker-software/mysql目錄創(chuàng)建my.cnf,主要填寫mysql的關鍵配置,填寫以下內(nèi)容:

[mysqld]
user=mysql
default-storage-engine=INNODB
character_set_server = utf8
init_connect='SET NAMES utf8'
max_connections = 1000
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

max_allowed_packet=64M

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/lib/mysql/mysqld.pid

鏡像啟動一個容器

#啟動第一個mysql,映射端口為3306
docker run -p 3306:3306 --name mysql-3306 --restart=always \
    -v /opt/docker-software/mysql/my.cnf:/etc/mysql/my.cnf \
    -v /opt/docker-software/mysql/3306/data/:/var/lib/mysql \
    -v /opt/docker-software/mysql/3306/log/:/var/log/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql:5.6 

#啟動第二個mysql,映射端口為3307
docker run -p 3307:3306 --name mysql-3307 --restart=always \
    -v /opt/docker-software/mysql/my.cnf:/etc/mysql/my.cnf \
    -v /opt/docker-software/mysql/3307/data/:/var/lib/mysql \
    -v /opt/docker-software/mysql/3307/log/:/var/log/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql:5.6

命令解釋:

  • -p是將容器的3306端口映射到宿主機的3306|3307端口上
  • -v是將容器的目錄或者文件映射到宿主機器上
  • mysql鏡像啟動時默認加載的是/etc/mysql/my.cnf,所以我們將/etc/mysql/my.cnf映射到了宿主機的/opt/docker-software/mysql/my.cnf,保證mysql啟動時加載的是我們自己配置的my.cnf
  • 在my.cnf中我們配置的數(shù)據(jù)文件的目錄是/var/lib/mysql,所以我們將此目錄映射到宿主機的/opt/docker-software/mysql/3306/data/和/opt/docker-software/mysql/3307/data/。這將保證mysql的數(shù)據(jù)文件存儲在宿主機指定的目錄中,防止容器停止重啟時丟失。
  • MYSQL_ROOT_PASSWORD為初始化mysql root用戶的密碼

測試

使用mysql工具分別連接3306和3307測試mysql的是否能夠使用

參考資料

docker官方安裝mysql鏡像的參考地址: https://hub.docker.com/_/mysql/

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

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

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