1、拉取鏡像
docker pull mysql
2、創(chuàng)建一個(gè)mysql 鏡像
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="123456" -d mysql
3、進(jìn)入mysql容器,指定配置文件在linux服務(wù)器掛載的路徑
//進(jìn)入mysql容器
docker exec -it mysql bash//查看配置文件位置
mysql --help | grep my.cnf
//退出容器
exit
//創(chuàng)建linux服務(wù)器上配置文件路徑與數(shù)據(jù)庫存儲路徑
mkdir -p /home/docker-mysql/conf && mkdir -p /home/docker-mysql/data
//將容器內(nèi)的配置文件復(fù)制到linux服務(wù)器
docker cp mysql:/etc/mysql/my.cnf /home/docker-mysql/conf/my.cnf
//修改配置文件
vim /home/docker-mysql/conf/my.cnf
//想改的配置往里寫就完事了
4、移除舊的mysql容器,創(chuàng)建新的mysql容器
//查看mysql容器的id
docker? ps
//停止正在運(yùn)行的mysql容器
docker stop 543a1feee7f3
//刪除mysql容器
docker rm 543a1feee7f3
//重新創(chuàng)建容器
docker run --name mysql -p 3306:3306 -d? -v /home/docker-mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker-mysql/data:/var/lib/mysql -v /home/docker-mysql/log:/logs -e MYSQL_ROOT_PASSWORD=123456 --restart=always? mysql --lower_case_table_names=1
-e MYSQL_ROOT_PASSWORD 設(shè)置mysql密碼
-v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf 掛載配置文件路徑
-v /home/mysql/:/var/lib/mysql 掛載磁盤實(shí)現(xiàn)數(shù)據(jù)持久化
--restart=always 容器異常停止后自動(dòng)重啟
--lower_case_table_names=1 忽略大小寫,docker mysql默認(rèn)區(qū)分大小寫的
navcat 連接mysql 報(bào)錯(cuò)??mysql caching_sha2_password' cannot be loaded
mysql> use mysql;
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;? ? //修改root用戶的加密規(guī)則
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; //修改root用戶的密碼為root
mysql> flush privileges;? ? //刷新權(quán)限