繁体   English   中英

WSL:无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

[英]WSL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我正在尝试在 Windows Subsystem for Linux (Ubuntu) 上使用全新安装的 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? 我不知道还有什么问题。

我遇到过同样的问题。

请按照 Microsoft 提供的以下步骤操作: 使用 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

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

将这些行放在文件/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

希望它会起作用,谢谢。

尽管M. Hamza Rajput的答案有效(已检查),但问题可能只是因为 mysql 没有运行而发生

于是,启动mysql服务:

sudo service mysql start

然后你可以调用安全安装

sudo mysql_secure_installation

每次我想运行 mysql 时,我都必须运行 mkdir /var/run/mysqld 然后 service mysql start 。 不知道为什么......在这里寻找答案但很烦人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM