当前位置:   article > 正文

docker安裝mysql(8.0.20)并且指定配置文件和数据存放位置_docker启动mysql指定配置文件

docker启动mysql指定配置文件

1、拉取镜像

docker pull mysql:8.0.20
  • 1

2、创建挂载使用到的目录

mkdir -vp /usr/local/docker/myMysql
cd /usr/local/docker/myMysql
mkdir data logs conf
  • 1
  • 2
  • 3

3、启动mysql

docker run -d -p 3306:3306 --name mysql  -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.20
  • 1

4、拷贝mysql的配置文件和数据

#复制配置文件
docker cp mysql:/etc/mysql /usr/local/docker/myMysql/conf
#复制data文件
docker cp mysql:/var/lib/mysql /usr/local/docker/myMysql/data
  • 1
  • 2
  • 3
  • 4

5、停止并删除容器

docker stop mysql
docker rm -f mysql
  • 1
  • 2

6、重新启动容器(指定数据卷)

docker run  -d  -p 3306:3306 \
--name mysql \
--privileged=true \
--restart=unless-stopped \
-v /usr/local/docker/myMysql/conf/mysql/conf.d:/etc/mysql/conf.d \
-v /usr/local/docker/myMysql/logs:/var/log/mysql \
-v /usr/local/docker/myMysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

7、拒绝连接解决方法

#1、无法连接(不允许远程连接)
docker exec -it mysql /bin/bash
mysql -u root -p
use mysql 
# 更新root - localhost 为 root - %
update user set host = '%' where user = 'root' and host='localhost'; 
# 设置允许远程用户访问
GRANT ALL ON *.* TO 'root'@'%'; 
flush privileges;# 刷新权限
#更新用户加密方式,mysql8默认的加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/478310
推荐阅读
相关标签
  

闽ICP备14008679号