Docker部署MySql,解决‘caching_sha2_passord’问题、时区问题等

本文详细介绍了如何在Docker上部署MySQL 8.0,包括拉取镜像、创建挂载目录、配置my.cnf文件,以及启动容器。在部署过程中,可能会遇到的两个问题:1) authentication plugin 'caching_sha2_password'错误,这是由于MySQL 8.0身份验证机制变化导致;2) 数据库时区问题,可能导致时间戳显示异常。针对这些问题,文章提供了相应的解决方案。

关联文章

CentOS 7 安装mysql 8.0 图文教程

今天分享如何在docker上部署mysql 8.0,并解决部署过程遇到的问题。

如果需要其他mysql版本,可以到docker hub进行查找,地址:https://hub.docker.com/_/mysql

docker部署mysql步骤

1、查看mysql镜像列表

 docker search mysql

2、拉取自己需要的镜像版本,这里我们选择的是默认版本

docker pull mysql

3、查看下载的镜像版本

docker images

4、创建挂载目录,目录地址根据自己需要创建

mkdir -p /dockerdata/mysql/conf /dockerdata/mysql/data

5、根据下图,了解到主配置文件 my.cnf 加载了 /etc/mysql/conf.d 文件夹下所有的配置(后缀必须是 .cnf),新建

### 解决 Navicat 连接 MySQL 时出现的 caching_sha2_password 插件错误 当使用 Navicat 连接 MySQL 数据库时,如果遇到错误提示 `authentication plugin 'caching_sha2_password' cannot be loaded`,这通常是由于客户端工具不支持 MySQL 8.0 及以上版本默认使用的 `caching_sha2_password` 认证插件所致。以下是几种解决方案: #### 方法一:修改 MySQL 用户的认证插件为 `mysql_native_password` 可以通过进入 MySQL 数据库并执行以下 SQL 命令来更改用户的认证插件[^1]: ```sql USE mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES; ``` 上述命令将用户 `root` 的认证插件从 `caching_sha2_password` 更改为 `mysql_native_password`,并刷新权限以使更改生效。 #### 方法二:在非 Docker 环境下直接修改 MySQL 配置 如果 MySQL 不是运行在 Docker 容器中,可以直接通过命令行进入 MySQL 并执行以下操作[^3]: 1. 登录到 MySQL 数据库: ```bash mysql -u root -p ``` 2. 修改用户的认证插件和密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES; ``` #### 方法三:在 Docker 环境下修改 MySQL 用户的认证插件 对于运行在 Docker 容器中的 MySQL 实例,可以按照以下步骤操作[^5]: 1. 进入 Docker 容器: ```bash docker exec -it mysql bash ``` 2. 登录到 MySQL 数据库: ```bash mysql -u root -p ``` 3. 修改用户的认证插件和密码: ```sql USE mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES; ``` #### 方法四:验证修改是否生效 可以通过以下 SQL 查询确认用户的认证插件已更改为 `mysql_native_password`[^4]: ```sql SELECT Host, User, plugin FROM user; ``` 查询结果应显示目标用户的 `plugin` 列为 `mysql_native_password`。 --- ### 注意事项 - 如果在远程连接时仍然无法成功,请确保防火墙已关闭或开放了 MySQL 的端口(默认为 3306)。 - 修改认证插件可能会影响安全性,建议仅在必要时进行此更改。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值