登录时会遇到如下错误:

提示没有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博客