📌  相关文章
📜  无法通过套接字连接到本地 mysql 服务器 - SQL (1)

📅  最后修改于: 2023-12-03 15:26:17.258000             🧑  作者: Mango

无法通过套接字连接到本地 MySQL 服务器 - SQL

当程序员在使用 MySQL 客户端连接到本地 MySQL 服务器时,可能会出现错误信息“无法通过套接字连接到本地 MySQL 服务器”。这个问题一般是由于以下原因导致的:

  • MySQL 服务器没有启动
  • MySQL 服务器的地址和端口号配置有误
  • MySQL 客户端无法访问 MySQL 服务器

下面我们将详细介绍如何解决这个问题。

MySQL 服务器没有启动

如果 MySQL 服务器没有启动,那么 MySQL 客户端将无法连接到 MySQL 服务器。可以通过以下命令检查 MySQL 服务器是否已经启动:

sudo systemctl status mysql.service

如果 MySQL 服务器已经启动,你将看到如下信息:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-08-09 16:07:16 CST; 3 months 16 days ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 14364 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 14327 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 14366 (mysqld)
    Tasks: 27
   Memory: 144.7M
      CPU: 3.292s
   CGroup: /system.slice/mysql.service
           └─14366 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

如果 MySQL 服务器没有启动,你将看到如下信息:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2019-08-09 16:06:40 CST; 3 months 16 days ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 14288 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 14276 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 14296 (code=exited, status=0/SUCCESS)

如果 MySQL 服务器没有启动,你可以通过以下命令启动 MySQL 服务器:

sudo systemctl start mysql.service
MySQL 服务器的地址和端口号配置有误

连接 MySQL 服务器需要正确的地址和端口号,否则连接会失败。通常情况下,MySQL 服务器的地址为 127.0.0.1,端口号为 3306。如果 MySQL 服务器的地址和端口号不是这个值,那么你需要在 MySQL 客户端的连接参数中指定正确的值。

以下是 MySQL 客户端连接 MySQL 服务器的例子:

mysql -h <hostname> -P <port> -u <username> -p

其中,<hostname> 为 MySQL 服务器的地址,<port> 为 MySQL 服务器的端口号,<username> 为 MySQL 用户名。

MySQL 客户端无法访问 MySQL 服务器

如果 MySQL 客户端无法访问 MySQL 服务器,那么通常是由于以下原因导致的:

  • MySQL 服务器没有开启远程访问
  • MySQL 服务器的防火墙屏蔽了客户端的访问请求
MySQL 服务器没有开启远程访问

如果 MySQL 服务器只开启了本地访问,那么其他电脑就无法连接到 MySQL 服务器。可以通过以下步骤开启 MySQL 服务器的远程访问:

修改 MySQL 配置文件

打开 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,将其中的以下行注释掉(如果没有以下行请添加):

#bind-address           = 127.0.0.1

授权远程访问的用户

在 MySQL 中,每个用户都有自己的用户名和密码。你需要使用 MySQL 中的 root 用户或者拥有管理员权限的用户登录 MySQL,然后授权一个具有远程访问权限的用户。以下是授权远程访问权限的命令:

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION;

其中,<username><password> 分别是你要授权的远程访问用户的用户名和密码,% 表示任意主机可以访问 MySQL 服务器。

重启 MySQL 服务器

修改配置文件后,需要重启 MySQL 服务器使得配置生效:

sudo systemctl restart mysql.service
MySQL 服务器的防火墙屏蔽了客户端的访问请求

如果 MySQL 服务器的防火墙屏蔽了客户端的访问请求,那么客户端无法访问 MySQL 服务器,你需要在 MySQL 服务器的防火墙中开放客户端的访问请求,具体操作可以参照你所使用的防火墙的文档。

以上列举了一些可能导致“无法通过套接字连接到本地 MySQL 服务器”的原因以及对应的解决办法,希望对你有帮助。