1,下载docker镜像
docker pull mysql:8.0
2,建立主机目录
mkdir -p /opt/mysql/conf /opt/mysql/data /opt/mysql/logs
3,创建mysql8.0配置文件
vim /opt/mysql/conf/my.cnf
1 [mysqld]
2 #datadir=/usr/local/mysql/data
3 default_authentication_plugin=mysql_native_password #使用mysql8以前的密码插件,以便navicat等工具能够正常连接
4 default-storage-engine=INNODB
5 character_set_server = utf8
6 secure_file_priv=/var/lib/mysql
7 [mysqld_safe]
8 character_set_server = utf8
9 [mysql]
10 default-character-set = utf8
11 [mysql.server]
12 default-character-set = utf8
13 [client]
14 default-character-set = utf8
4,创建容器脚本
vim /opt/mysql/docker.sh
1 docker run -p 3306:3306 --name mysql \
2 -v /opt/mysql/logs:/var/log/mysql \
3 -v /opt/mysql/data:/var/lib/mysql \
4 -v /opt/mysql/conf:/etc/mysql \
5 -e MYSQL_ROOT_PASSWORD=root \
6 -d mysql:8.0
./docker.sh
5,配置mysql对外开放连接权限(如果外界navicat联不通,一般docker版的mysql是可以从外界直接连通的)
docker exec -it mysql mysql -uroot -proot
use mysql
select host,user from user;
update user set host = '%' where user = 'root';
flush privileges;
select host,user from user;