docker安装MySql并解决客户端连接失败问题

在dockerhub中查询mysql
docker search mysql

拉取mysql镜像(不加版本表示默认最新版)
docker pull mysql

启动容器(-d代表后台运行)

docker run --name mysql01  -d mysql

启动之后查看容器是否在运行
docker ps
在这里插入图片描述
发现并没有在运行。然后查看所有的容器
docker ps -a
在这里插入图片描述
发现mysql01存在,但是异常退出了。
查看错误日志

[root@VM_0_4_centos ~]# docker logs 1ebef00c4e53
error: database is uninitialized and password option is not specified 
  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

读日志发现mysql的密码项未指定
删掉启动失败的容器

重新启动,指定密码

docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=password -d mysql

在查看状态
在这里插入图片描述
启动成功。

但是在使用客户端连接的时候,连接失败,报错信息为:
*****using passwoed:YES
解决方法如下:

//进入容器:
docker exec -it 62349aa31687 /bin/bash
//进入mysql:
mysql -uroot -p
//授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
//刷新权限:
mysql> flush privileges;
//更新加密规则:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
//刷新权限:
mysql> flush privileges;

在这里插入图片描述
然后使用客户端连接,成功。使用程序连接,依然成功。

需要注意的是,这只是我本地测试使用的。没有挂载数据,没有设置自启动等等。若要使用,还需更为完善的配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker安装MySQL出现问题的情况下,有几个可能的解决方案。 1. 首先,根据引用中的错误信息,可以尝试检查配置文件目录权限的问题。报错中提到无法读取'/etc/mysql/conf.d/'目录。可以通过确保相关目录具有正确的权限来解决问题。例如,可以使用以下命令更改目录权限: ``` sudo chmod -R 755 /etc/mysql/conf.d/ ``` 2. 另外,根据引用中的命令行,如果您创建的容器在运行`docker ps`时未显示,请检查容器是否已停止。可以使用`docker logs`命令来查看容器的日志,以获取更多关于容器启动失败的信息。 3. 如果在删除镜像时遇到冲突错误,如引用所述,可以尝试使用镜像名称和标签的方式删除镜像,而不是使用镜像ID。例如,使用以下命令删除镜像: ``` docker rmi <镜像名称:标签> ``` 4. 当使用Navicat连接MySQL时出现2003错误时,可能是由于几个原因引起的。首先,您可以查看MySQL配置文件中的绑定地址是否为'127.0.0.1',如引用所述。如果是,则只能在本地访问MySQL。如果需要从其他主机访问MySQL,请将绑定地址更改为适当的IP地址。 5. 最后,如果在Docker容器中启动的实例没有运行,并且连接MySQL时出现2003错误,可以尝试使用以下命令来启动容器实例并进入容器内部: ``` docker start <容器名称> docker exec -it <容器名称> bash ``` 以上是一些可能的解决方案,您可以根据具体情况尝试其中的一种或多种方法来解决Docker安装MySQL失败问题。如果问题仍然存在,请提供更多详细信息以便我们更好地帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值