搭建环境:
- MAC10.15
- docker 19.03.4
- mysql-8.0.18(不同版本有些参数不一,最终可参考官网https://hub.docker.com/_/mysql/)
第一步:在宿主机上创建需要外置的目录。 目录不能指定在root用户下
mkdir /Users/haizhi/Desktop/software/df/mysql
cd /Users/haizhi/Desktop/software/df/mysql
mkdir data config
第二步:创建mysql配置文件 vim config/my.cnf
[mysqld]
user=mysql
lower_case_table_names=0
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
第三步:在docker中拉取镜像
##拉取mysql最新版本
docker pull mysql
第四步:编写启动脚本
vim build.sh
##赋予可执行权限
chmod +x build.sh
build中内容
docker run --name mysql --restart=always --privileged=true -p 3306:3306 --volume /Users/haizhi/Desktop/software/df/mysql/data:/var/lib/mysql --volume /Users/haizhi/Desktop/software/df/mysql/config/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql
第五步进入容器内部设置远程可连接
docker exec -it mysql /bin/sh
1,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)
GRANT ALL ON *.* TO 'root'@'%';
2,刷新权限
flush privileges;
3,更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
4,更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
5,刷新权限
flush privileges;
通过客户端验证