admin管理员组

文章数量:1551268

在我使用ubuntu虚拟机部署docker时产生的问题

当我进入mysql容器时,使用mysql -uroot -p登录数据库,就会产生报错
报错信息如下:
2002 - Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

但是使用 mysql -h127.0.0.1 -uroot -p就可以正常登录。
虽然这样可以登录,但是用起来很难受。于是我就在网上看了很多文章,终于让我找到了解决办法。

为什么会报错

打开docker的mysql容器你会发现/var/run/mysqld这个目录下没有mysqld.sock
至于为什么没有这个文件,目前没找到原因。

解决方法

  1. 在docker的mysql容器中执行命令先找到这个文件
    find / -name mysql.sock
    注意:这里就是找mysql.sock不是mysqld.sock

  2. 执行后会返回给你一个这个文件所在的目录
    /var/lib/mysql/mysql.sock

  3. 找到文件所在的地址之后,然后执行下面命令即可(第一个参数自行替换参数)
    ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock

参考文章:https://cloud.tencent/developer/article/2011744?from=15425&areaSource=102001.3&traceId=p_qTzd6JCZfellW2zv2_6

本文标签: connectLocalmysqlErrorrun