Loading

Docker 搭建 MySQL 8版本

安装 Docker

请参考我的另一篇文章

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

posted @ 2020-04-29 23:19  PinGoo  阅读(877)  评论(0编辑  收藏  举报