登录时会遇到如下错误:
提示没有mysqld.sock文件
尝试解决:
1.进入容器查看/var/run/mysqld路径下的所有目录,看是否有mysqld.sock文件
docker exec -it mysql-server bash
发现该目录下 无该文件
2. 进入/etc目录找到myg文件,并用cat命令查看
# For advice on how to change settings please see
# http://dev.mysql/doc/refman/8.1/en/server-configuration-defaults.html
[mysqld]
...................
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
3.该文件内用vim或vi编辑器添加以下语句:
[mysql]
protocol=tcp
但又遇到新问题了,如下:
原因是mysql-server容器当中没有安装vi编辑器
4.这里用docker cp,宿主机的路径为/home/mysql/myf 容器内路径为/etc/myf
5.进入mysql-server容器当中查看myf是否修改(成功修改!!!)
6.再次尝试登录MySQL
又有新的错误 显示本机3306端口无法连接MySQL
7.向my文件加一句 端口3306
port=3306
8.再次测试连接:
还是显示连接不上!!!
9.检查防火墙的状态:
ufw status
显示未开启:
10.查看 3306端口状态:
LISTEN: 这表明当前的网络套接字处于监听状态,等待来自远程客户端的连接请求。 TCP:即ipv4通信 TCP6:即ipv6通信
11. 查看ipv4和ipv6的状态:
sysctl net.ipv6.conf.all.forwarding
sysctl net.ipv4.conf.all.forwarding
可以看到ipv4的结果为1 表明ipv4通信没有问题
已经解决,移步至该文章查看
Docker容器中运行MySQL服务,并用navicat测试连接-CSDN博客


发布评论