Docker 搭建 MySQL 8版本
安装 Docker
请参考我的另一篇文章
建立镜像
拉取镜像
# 拉取最新版本镜像
docker pull mysql
首先需要准备新建目录及文件
文件:/usr/local/docker/mysql8/config/my.cnf
目录:/usr/local/docker/mysql8/data
文件:/usr/local/docker/mysql8/etc/localtime
目录:/usr/local/docker/mysql8/log
my.cnf 文件
[mysqld]
user=mysql
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
创建数据库容器
*********************** MySQL 8 版本 ********************************
docker run -p 3308:3306 --name mysql8 \
-v /usr/local/docker/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw \
-v /usr/local/docker/mysql8/log:/var/log/mysql:rw \
-v /usr/local/docker/mysql8/data:/var/lib/mysql:rw \
-v /usr/local/docker/mysql8/etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
# -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
检查容器是否正确运行
docker container ls
# 可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字
配置MySQL 8.0 版本(支持远程连接,Navicate)
如果使用上面提供的 my.cnf 配置文件,这一步不做,直接用 navicate 连接数据库
# 进入容器
docker exec -it mysql8 bash
# 登录mysql
mysql -uroot -p
# 切换到mysql数据库
use mysql;
# 查看用户信息
select host,user,plugin,authentication_string from mysql.user;
# 修改更新密码算法,便于使用Navicat连接,
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
参考连接
https://www.cnblogs.com/sablier/p/11605606.html
https://blog.csdn.net/weixin_43279476/article/details/97753831