【问题标题】:WSL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)WSL:无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)
【发布时间】:2020-11-17 21:27:19
【问题描述】:

我正在尝试在适用于 Linux (Ubuntu) 的 Windows 子系统上使用全新安装的 MySQL,但似乎无法连接到它。我总是得到错误: WSL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我试过了:

  • 将配置切换为使用 localhost 而不是套接字(我收到一条错误消息,提示我无法通过 localhost 进行连接)
  • 通过编辑/etc/mysql/mysql.conf.d/mysqld.cnf 并重新启动来使用--skip-grant-tables

文件/var/run/mysqld/mysqld.sock 也永远不会出现,尽管我认为这是因为 WSL 一开始就没有完美的套接字支持,但它应该仍然可以工作。我怀疑这个问题可能是 WSL 特有的,也许我应该尝试更新到 WSL2?我不知道还有什么问题。

【问题讨论】:

    标签: mysql windows-subsystem-for-linux


    【解决方案1】:

    我遇到了同样的问题。

    按照 Microsoft 提供的这些步骤操作:Add or connect a database with WSL

    1. 更新您的 Ubuntu 软件包:sudo apt update
    2. 安装 MySQL:sudo apt install mysql-server
    3. 启动 MySQL 服务器:sudo /etc/init.d/mysql start
    4. 启动安全脚本提示:sudo mysql_secure_installation
    5. 打开 MySQL 提示符:sudo mysql

    【讨论】:

    • 3-抛出错误:“su:警告:无法将目录更改为/不存在:没有这样的文件或目录”然后启动服务器
    【解决方案2】:

    我通过以下步骤解决了同样的问题。

    将这些行放在文件末尾/etc/mysql/my.cnf

    [mysqld]                                                                                                                
    bind-address = 0.0.0.0                                                                                                    
    user=root                                                                                                               
    pid-file     = /var/run/mysqld/mysqld.pid                                                                                
    socket       = /var/run/mysqld/mysqld.sock                                                                               
    port         = 3306                                                                                                                                                                                                                              
    
    [client]                                                                                                                
    port         = 3306                                                                                                      
    socket       = /var/run/mysqld/mysqld.sock
    

    然后把这些命令放到终端上 NOTE: if dir is not there then create one.

    chmod 777 -R /var/run/mysqld
    chmod 777 -R /var/lib/mysql
    chmod 777 -R /var/log/mysql
    

    然后使用以下命令启动 mysql。

    mysqld
    

    然后打开一个新终端并使用以下命令进行连接

    mysql -uroot -pYourPass
    

    希望它会起作用,谢谢。

    【讨论】:

    • mysqld: '/var/lib/mysql-files' 上的 realpath() 错误(错误 2 - 没有这样的文件或目录)
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2017-01-16
    • 2017-11-08
    • 2016-02-17
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多