1. 获取镜像
# 查看可用的稳定版本sudo docker search mysqlsudo docker pull mysql:8.0.11sudo docker image ls |grep mysql
2. 创建数据卷
sudo mkdir -p /home/mysql8/{conf,data,logs,mysql-files}# 赋予data目录读写权限sudo chmod 777 /home/mysql8/datasudo chmod 777 /home/mysql8/mysql-files
3. 启动容器
sudo docker run -d -p 3306:3306 --name mysql8 \ -v /home/mysql8/conf:/etc/mysql:rw \ -v /home/mysql8/logs:/var/log/mysql:rw \ -v /home/mysql8/data:/var/lib/mysql:rw \ -v /home/mysql8/mysql-files:/var/lib/mysql-files/:rw \ -e MYSQL_ROOT_PASSWORD=123456 \ --privileged=true \ --restart=always \mysql:8.0.11sudo docker start mysql8sudo docker restart mysql8sudo docker stop mysql8sudo docker rm mysql8
4. 验证
sudo docker exec -it mysql8 /bin/bashmysql -uroot -p123456# 解决中文显示问题sudo docker exec -it mysql8 env LANG=C.UTF-8 /bin/bashmysql -uroot -p123456 --default-character-set=utf8
5. 远程登录
CREATE USER bdapuser IDENTIFIED BY 'bdapuser';GRANT ALL ON *.* TO 'bdapuser'@'%';flush privileges;-- 解决Navicat不支持MySQL8新的加密模式问题(caching_sha_password)alter user 'bdapuser'@'%' identified with mysql_native_password by 'bdapuser';GRANT ALL PRIVILEGES ON *.* TO 'bdapuser'@'%';flush privileges;-- 查询用户是否创建成功select user,host from mysql.user;-- host里有“%”说明是远程用户,然后退出mysql、docker容器,并用客户端工具远程登录测试