简体   繁体   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)

I'm trying to use a fresh installation of MySQL on Windows Subsystem for Linux (Ubuntu) and can't seem to ever connect to it.我正在尝试在 Windows Subsystem for Linux (Ubuntu) 上使用全新安装的 MySQL,但似乎无法连接到它。 I always get the error: WSL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)我总是收到错误: WSL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

I've tried:我试过了:

  • Switching the configuration to use localhost instead of sockets (I instead get an error saying I can't connect through localhost)将配置切换为使用 localhost 而不是套接字(我收到一条错误消息,提示我无法通过 localhost 连接)
  • Using --skip-grant-tables by editing /etc/mysql/mysql.conf.d/mysqld.cnf and restarting通过编辑/etc/mysql/mysql.conf.d/mysqld.cnf并重新启动使用--skip-grant-tables

The file /var/run/mysqld/mysqld.sock never shows up either, though I figure this is because WSL doesn't have perfect socket support to begin with but it should still work.文件/var/run/mysqld/mysqld.sock也永远不会出现,尽管我认为这是因为 WSL 没有完美的套接字支持,但它仍然可以工作。 I suspect the problem might be specific to WSL and maybe I should try updating to WSL2?我怀疑问题可能特定于 WSL,也许我应该尝试更新到 WSL2? I don't know what else the issue could be.我不知道还有什么问题。

I had the same issue.我遇到过同样的问题。

Follow these steps provided by Microsoft: Add or connect a database with WSL请按照 Microsoft 提供的以下步骤操作: 使用 WSL 添加或连接数据库

  1. Update your Ubuntu packages: sudo apt update更新您的 Ubuntu 软件包: sudo apt update
  2. install MySQL with: sudo apt install mysql-server使用以下命令安装 MySQL: sudo apt install mysql-server
  3. Start a MySQL server: sudo /etc/init.d/mysql start启动 MySQL 服务器: sudo /etc/init.d/mysql start
  4. Start the security script prompts: sudo mysql_secure_installation启动安全脚本提示: sudo mysql_secure_installation
  5. Open the MySQL prompt: sudo mysql打开 MySQL 提示符: sudo mysql

I have the same issue solved through the following steps.我通过以下步骤解决了同样的问题。

Put these lines at the end of the file /etc/mysql/my.cnf将这些行放在文件/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

Then put these commands on terminal NOTE: if dir is not there then create one.然后将这些命令放在终端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

Then start mysql using below command.然后使用以下命令启动mysql。

mysqld

Then open a new terminal and connect using the below command然后打开一个新终端并使用以下命令进行连接

mysql -uroot -pYourPass

Hopefully, it will work thanks.希望它会起作用,谢谢。

Although M. Hamza Rajput 's answer is working (checked), it might be the case that the problem happens simply because mysql is NOT running尽管M. Hamza Rajput的答案有效(已检查),但问题可能只是因为 mysql 没有运行而发生

Thus, start mysql service:于是,启动mysql服务:

sudo service mysql start

and then you can call the secure installation然后你可以调用安全安装

sudo mysql_secure_installation

I have to run mkdir /var/run/mysqld and then service mysql start everytime I want to run mysql.每次我想运行 mysql 时,我都必须运行 mkdir /var/run/mysqld 然后 service mysql start 。 No clue why... here looking for answers but very annoying.不知道为什么......在这里寻找答案但很烦人。

暂无
暂无

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

相关问题 mysql错误“无法通过套接字'/var/run/mysqld/mysqld.sock连接到本地MySQL服务器” - mysql error “Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock” 无法通过ubuntu 14.04中的套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器 - Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in ubuntu 14.04 “无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器”) - “Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)”) django无法通过套接字'/var/run/mysqld/mysqld.sock连接到本地MySQL服务器 - django Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)") - OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)") Ubuntu:无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2) - Ubuntu: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器(错误2002) - Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) (error 2002) 问题:无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器 - Problem:: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器 - Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 无法通过套接字“ /var/run/mysqld/mysqld.sock”连接到本地MySQL服务器。 - Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM