docker部署mysql后无法连接的解决方式

 更新时间:2022年08月08日 11:08:39   作者:有谁看见我的剑了?  
最近在在docker中安装了mysql后,去连接的时候出现错误,下面这篇文章主要给大家介绍了关于docker部署mysql后无法连接的解决方式,文中通过图文介绍的非常详细,需要的朋友可以参考下

1、创建实例命令

docker run -id --name=c_mysql -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.37

2、查看启动的实例 docker ps

3、这里映射的是宿主机的3306端口,我已经把端口开放了

4、在宿主机进行连接

#这个报错像是mysql不存在,查看mysql是否启动

#mysql已启动,端口也没有被占用

5、已经在容器里面测试了,mysql可以正常连接;在试试将root用户开放可以任何主机访问

5.1、进入容器,并连接mysql

docker exec -it c_mysql bash
mysql -uroot -p123456

5.2、将root用户开放所有主机可以访问

mysql> grant all privileges on . to root@‘%'; #授权
mysql> flush privileges; #刷新权限表

6、在宿主进再次进行连接测试

#还是不行!!!

7、去百度了一下,觉得是宿主机的路由没有开启,来试试看

#一圈回来,发现问题出在宿主机,因为如果要使用mysql命令,就是必须要/usr/bin/目录下有这个命令。但是我是docker安装mysql所以,宿主机不能使用mysql连接docker的数据库,使用远程工具navicat连接时报的错,应该是root用户没有开启,任何主机可以访问的权限。由于上面已经开了,我现在测试navicat是可以远程连接的

8、上面说到了一个宿主机路由的问题,我们路由没开的话就会导致宿主机于容器实例网络隔绝,所以是要打开的。

8.1、查看路由是否打开

sysctl net.ipv4.ip_forward

#返回值为1代表路由已开启,为0就是未开启

8.2、开启路由

echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf #将命令写入到/etc/sysctl.conf文件中
sysctl -p #加载内核
sysctl net.ipv4.ip_forward #再次查看路由是否开启

补充:Docker里的Mysql无法连接,连接一段时间超时。ERROR 2013 (HY000): Lost connection to MySQL server at

尝试使用命令行连接

mysql -h xxx.xxx.xxx.xxx -P 3306 -u root -p 123456

如果报错:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"

请重启docker服务

然后再次启动容器

如果不是这种报错,请检查Mysql版本,如果为8.0及以上版本;需要注意,该版本密码认证机制已经升级,有些客户端未能兼容,请使用新的认证方式修改Mysql密码

还有就是,所登录的用户是否允许任意主机连接

use mysql;
select user,host from user;

仅允许本地连接:root@localhost

允许任意连接:root@%

如果发现为:root@localhost

不要直接修改此表

可以新建一个用户,并赋予权限

#Mysql8.0:

#添加远程登录用户
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'passwd!';

#赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';

总结

到此这篇关于docker部署mysql后无法连接解决的文章就介绍到这了,更多相关docker部署mysql无法连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 通过端口来连接一个容器的实现

    Docker 通过端口来连接一个容器的实现

    这篇文章主要介绍了Docker 通过端口来连接一个容器的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • idea + Docker + 阿里镜像服务打包部署的过程

    idea + Docker + 阿里镜像服务打包部署的过程

    本文介绍了如何在IDEA中使用Docker打包镜像,并将镜像推送到阿里云镜像服务,同时,还详细说明了如何在ECS服务器上安装和配置Docker,并提供了常用的Docker命令和操作技巧,感兴趣的朋友一起看看吧
    2025-02-02
  • Docker案例分析:搭建Redis服务

    Docker案例分析:搭建Redis服务

    这篇文章主要介绍了Docker案例分析:搭建Redis服务方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Docker与docker-compose中volume参数的使用方式

    Docker与docker-compose中volume参数的使用方式

    文章介绍了Docker中的数据卷Volume的概念及其在宿主机和容器之间的数据共享和持久化,它详细说明了两种数据挂载方式:通过宿主机绝对路径挂载和通过卷标映射挂载,包括匿名挂载和具名挂载,同时,文章还展示了如何通过docker命令查看数据卷的宿主机目录
    2024-11-11
  • Docker安装ClickHouse并初始化数据测试

    Docker安装ClickHouse并初始化数据测试

    clickhouse作为现在流行的数据分析数据库,非常热门,docker如何安装ClickHouse,很多朋友并不是很明白,今天小编抽空给大家分享一篇教程关于Docker安装ClickHouse并初始化数据测试的问题,一起看看吧
    2021-06-06
  • Docker+Jenkins+Gitee自动化部署maven项目的实现

    Docker+Jenkins+Gitee自动化部署maven项目的实现

    本文主要介绍了Docker+Jenkins+Gitee自动化部署maven项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Docker中部署Mino并挂载配置文件的项目实践

    Docker中部署Mino并挂载配置文件的项目实践

    本文主要介绍了Docker中部署Mino并挂载配置文件的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • docker打包Python环境的过程详解

    docker打包Python环境的过程详解

    这篇文章主要介绍了docker打包Python环境过程,准备工作需要大家复制python程序启动程序,具体操作流程跟随小编一起看看吧
    2021-08-08
  • 如何使用docker极简打包java.jar镜像并启动

    如何使用docker极简打包java.jar镜像并启动

    这篇文章主要介绍了如何使用docker极简打包java.jar镜像并启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • docker gitea drone实现超轻量级CI CD实战详解

    docker gitea drone实现超轻量级CI CD实战详解

    这篇文章主要为大家介绍了docker gitea drone实现超轻量级CI CD实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论