411

我的问题开始于我无法在我的 mysql 安装上以 root 身份登录。我试图在没有打开密码的情况下运行 mysql ......但是每当我运行命令时

# mysqld_safe --skip-grant-tables &

我永远不会得到提示。我试图按照这些说明恢复密码

屏幕看起来像这样:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

而且我没有得到提示开始输入 SQL 命令来重置密码。

当我按CTRL+杀死它时C,我收到以下消息:

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

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

如果我重试该命令并将其保留足够长的时间,我会收到以下一系列消息:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

但是,如果我尝试通过执行以下操作以 root 身份登录:

# mysql -u root

我收到以下错误消息:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我检查了,/var/run/mysqld/mysqld.sock文件不存在。文件夹有,但文件没有。

另外,我不知道这是否有帮助,但我跑了find / -name mysqld,它想出了:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

我是 Linux 和 MySQL 的新手,所以我不知道这是否正常。但我将这些信息包括在内,以防万一。

我终于决定卸载并重新安装mysql。

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

以与上述相同的顺序再次重新安装所有软件包后,在 phpmyadmin 安装期间,我收到了相同的错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

所以我再次尝试卸载/重新安装。这一次,在我卸载了这些包之后,我还手动将所有 mysql 文件和目录重命名到mysql.bad了它们各自的位置。

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

然后我尝试重新安装mysql-servermysql-client再次。但我注意到它不会提示我输入密码。不是应该要求管理员密码吗?

4

49 回答 49

357

试试这个命令,

sudo service mysql start
于 2014-05-06T03:18:55.027 回答
229

要查找系统上的所有套接字文件,请运行:

sudo find / -type s

我的 Mysql 服务器系统打开了套接字/var/lib/mysql/mysql.sock

找到打开套接字的位置后,添加或编辑 /etc/my.cnf 文件中包含套接字文件路径的行:

socket=/var/lib/mysql/mysql.sock

有时,启动命令行可执行文件的系统启动脚本会指定一个标志--socket=path。此标志可能会覆盖 my.cnf 位置,这将导致在 my.cnf 文件指示的位置找不到套接字。然后,当您尝试运行 mysql 命令行客户端时,它会读取 my.cnf 以查找套接字,但它不会找到它,因为它偏离了服务器创建的位置。因此,除非您关心套接字所在的位置,否则只需将 my.cnf 更改为匹配即可。

然后,停止 mysqld 进程。您如何执行此操作将因系统而异。

如果您是 linux 系统的超级用户,如果您不知道 Mysql 设置使用的具体方法,请尝试以下方法之一:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • 某些系统未设置为具有停止 mysql 的优雅方式(或由于某种原因 mysql 没有响应),您可以使用以下任一方法强制终止 mysql:
    • 一步:pkill -9 mysqld
    • 两步(最不推荐):
      • pgrep mysql使用或查找 mysql 的进程 IDps aux | grep mysql | grep -v grep
      • 假设进程 id4969终止于kill -9 4969

完成此操作后,您可能需要在其中查找 pid 文件/var/run/mysqld/并将其删除

确保您的套接字上的权限使得任何运行 mysqld 的用户都可以读取/写入它。一个简单的测试是打开它以完全读/写,看看它是否仍然有效:

chmod 777 /var/run/mysqld/mysqld.sock

如果这样可以解决问题,您可以根据您的安全设置按需定制套接字的权限和所有权。

此外,运行 mysqld 进程的用户必须可以访问套接字所在的目录。

于 2012-08-16T15:40:02.493 回答
187

由于多次安装mysql而发生此错误。运行命令:

ps -A|grep mysql

使用以下命令终止进程:

sudo pkill mysql

然后运行命令:

ps -A|grep mysqld

还可以通过运行终止此进程:

sudo pkill mysqld

现在您已完全设置,只需运行以下命令:

service mysql restart
mysql -u root -p

再次拥有运行良好的 mysql

于 2014-10-20T07:53:50.730 回答
43

解决方案要容易得多。

  1. 首先,您必须找到mysql.sock文件所在的位置(在终端中使用“sudo find / -type s”)。就我而言,它在/opt/lampp/var/mysql/mysql.sock
  2. 启动终端并发出 sudo Nautilus
    这将以超级用户权限启动您的文件管理器
  3. 从 Nautilus 导航到您的mysql.sock文件所在的位置
  4. 右键单击该文件并选择制作链接
  5. 将链接文件重命名为mysqld.sock然后右键单击该文件并剪切
  6. 转到/var/run并创建一个名为mysqld并输入它的文件夹
  7. 现在右键单击并粘贴链接文件
  8. 瞧!您现在将有一个mysqld.sock文件在/var/run/mysqld/mysqld.sock:)
于 2013-02-05T23:47:52.087 回答
30

安装后只需要启动 MySQL 服务:

对于 Ubuntu:

sudo service mysql start;

对于 CentOS 或 RHEL:

sudo service mysqld start;
于 2016-02-23T12:13:21.113 回答
18

在 MySQL 5.6 和 5.7 的 Ubuntu 上存在一个错误,var/run/mysqld/只要 MySQL 服务停止或重新启动,该错误就会消失。这完全阻止了 MySQL 的运行。找到了这个不完美的解决方法,但至少在停止/重启后它可以运行:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
于 2017-03-07T05:15:57.193 回答
15

好的,只需复制并粘贴这些代码:这应该在终端中完成,在服务器内部,当您的 mysql 数据库未正确安装时,并且当您收到此错误时:'无法通过套接字连接到本地 MySQL 服务器'/ var/run/mysqld/mysqld.sock'(2)'。

停止 MySql

sudo /etc/init.d/mysqld stop

重新启动它或启动它

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

制作这样的链接并提供给系统

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

运行安全安装,指导您配置 mysql 所需的所有过程

/usr/bin/mysql_secure_installation
于 2013-08-08T20:43:20.287 回答
13

我遇到了同样的错误,发现这是由于升级包引起的,所以在重新启动我的系统后我解决了错误。

我认为由于 sql 库/包更新发生了错误,所以如果你正在做一些升级,试试这个:)

于 2013-01-24T06:37:32.740 回答
13

确保您无法访问的套接字文件路径与“/var/run/mysqld/mysqld.sock”相同,否则将路径更改为您的路径。停止 mysqld

$ sudo /etc/init.d/mysqld stop

如果进程仍在运行;

$ sudo pkill -9 mysqld

删除要创建套接字的 mysql 目录。对我来说它不允许删除,所以我不得不强行删除。

$ sudo mkdir -p /var/run/mysqld

将所有权设置为目录

$ sudo chown mysql:mysql /var/run/mysqld

启动mysql

$ sudo /etc/init.d/mysql start

尝试连接mysql

$ sudo mysql -u dbuser -p
于 2019-06-20T10:56:40.590 回答
9

这个问题有很多原因,但有时只需重新启动 mysql 服务器,它就会解决问题。

sudo service mysql restart
于 2015-01-23T07:25:07.623 回答
8

用户加载步骤的答案对我有用。有时需要在/etc/mysql/my.cnf添加行中编辑文件到客户端

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock
于 2013-11-18T00:38:08.193 回答
8

在 ubuntu 上使用 XAMPP:

  1. /var/run目录中创建一个名为mysqld的文件夹。您可以使用命令完成该操作。sudo mkdir /var/run/mysqld

  2. 创建一个指向mysql.sock文件的符号链接,该文件由 XAMPP 服务器在启动时创建。你可以使用命令sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

注意: mysql.sock文件在服务器启动时创建,在服务器停止时删除,因此有时您创建的链接可能看起来已损坏,但只要您使用任何一种sudo /opt/lampp/lampp start或任何其他方式启动服务器,它就应该可以工作方法。

  1. 如果服务器尚未运行,请启动它并再次尝试执行您的程序。

祝你好运!我希望你这次能侥幸逃脱。

于 2018-06-14T13:17:22.867 回答
8

为什么会出现此错误

我收到了 mysql 库的新更新,所以在收到这些错误之后我更新了我的 Kubuntu 操作系统。


我尝试过的命令以及我如何修复它。

MySql-server 运行正常,但是当我尝试连接它时

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

我检查了/var/run/mysqld/mysqld.sock'.这个目录。我的文件不存在。

我也尝试了这些命令来连接,但对我没有用。

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

浪费了大约2 个小时后,我找到了解决方案

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

在那之后,一切都为我解决了。

于 2020-03-06T05:18:17.697 回答
7

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

解决方案

最后卸载并重新安装mysql。**

  • sudo apt-get 删除 mysql-server
  • sudo apt-get 删除 mysql-client
  • sudo apt-get 删除 mysql-common
  • sudo apt-get 删除 phpmyadmin

然后再次安装

  • sudo apt-get install mysql-server-5.6

此操作后,将使用 164 MB 的额外磁盘空间。

  • 你要继续吗?[Y/n] Y 按 YES 完成安装

………………

  • 最后你会得到这些线......

    设置 libhtml-template-perl (2.95-1) ...

    设置 mysql-common-5.6 (5.6.16-1~exp1) ... 处理 libc-bin (2.19-0ubuntu6) 的触发器 处理 ureadahead (0.100.0-16) 的触发器 ...

  • 进而

    root@ubuntu1404:~# mysql -u root -p (对于你应该首先使用的每个密码)

  • 输入密码:

  • 注意:输入的密码应该和mysql的安装时密码相同(如.root、system、admin、rahul等...)

    然后输入

  • 使用 rahul_db(数据库名称);

谢谢。**

于 2014-10-03T13:29:57.787 回答
7

我认为您的 MySQL 服务器尚未启动。因此,使用以下命令之一启动服务器。

#services mysql start

或者

#/etc/init.d/mysql start
于 2019-03-04T07:10:57.733 回答
6

临时解决方案

也许有人面临这个问题。我在Ubuntu 14上使用Mysql Workbench并收到此错误。

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

通过运行找到您的套接字文件sudo find / -type s,在我的情况下是/run/mysqld/mysqld.sock

所以,我只是在目录中创建了一个指向这个文件的链接tmp

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

请注意,这是一个临时解决方案,因为创建的文件将位于/tmp. 请参阅其他答案以获得永久解决方案。

于 2014-12-08T07:35:31.043 回答
5

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

/etc/my.cnf添加此行:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

并使用以下命令重新启动服务: service mysql restart

这对我有用

于 2015-07-17T10:57:21.527 回答
5

这已经被提到了几次,但这对我来说立即起作用:

服务mysql重启

于 2015-09-25T18:50:12.580 回答
4

如果你已经安装mysqld.sock了 ,你可以找到/var/run/mysqldmysql-serversudo apt-get install mysql-server

于 2013-07-31T12:25:30.957 回答
3

在我的情况下,两个 mysqld 进程正在运行.. 使用 pkill -9 mysqld 杀死了可选进程

于 2013-10-15T08:32:22.350 回答
3

如果您的系统上有很多数据库和表,并且您innodb_file_per_table在 my.cnf 中进行了设置,那么您的 mysql 服务器可能已经用完了打开的对象/文件(或者更确切地说是这些对象的描述符) 设置一个新的最大数量和

open-files-limit = 2048

并重新启动mysql。当根本没有创建套接字时,这种方法可能会有所帮助,但实际上这可能不是真正的问题,这是一个潜在的问题。

于 2014-04-09T10:53:18.213 回答
3

我刚刚在 Ubuntu 14.10 上遇到了这个问题

mysql-server不再安装的转弯(不知何故已被删除)但我不能只安装它,因为有一些损坏的包和依赖问题/冲突。

最后我不得不重新安装mysql

sudo apt-get remove mysql-client
sudo apt-get install mysql-server
于 2015-06-24T15:23:34.153 回答
3

我在 Ubuntu 上使用 XAMPP。通过终端连接数据库时发现此错误。我在没有任何配置的情况下解决了它,因为 XAMPP 中的默认套接字文件路径写在“/opt/lampp/etc/my.cnf”中,如下所示:

[client]
#password   = your_password
port        = 3306
socket      = /opt/lampp/var/mysql/mysql.sock

现在您可以通过在终端上使用 mysql 命令提供此套接字路径参数来进行连接,例如:

mysql -u root --socket /opt/lampp/var/mysql/mysql.sock

并且无需任何配置即可完成。

如果您不想每次都输入套接字路径,请通过“/var/run/mysqld/mysqld.sock”更改 my.cnf 中的默认路径。提供权限并重新启动 mysql 服务器。

编辑:最近我安装了 Ubuntu 20.04 并尝试安装 MySQL 服务器,但我的系统崩溃并且根本无法工作。所以我刚刚完全删除了 MySQL 并安装了 MariaDB。它像魅力一样工作,没有任何问题。

于 2018-10-03T06:22:28.073 回答
3

我有完全相同的问题。苦苦挣扎了一个小时,终于找到了不用重新安装mysql-common、mysql-client、mysql-server的方法来纠正。

首先,转到“/var/run/mysqld”。你会发现mysql.sock 不存在。只需删除整个 mysqld 目录并重新创建它并为其提供必要的权限。

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

现在,完全杀死 mysql 进程。即使在关闭服务后,它也可能会在运行“/etc/init.d/mysql status”命令时显示“等待页面清理器”。

要完全关闭服务,请使用

# pkill -9 mysqld

一旦进程被杀死,请尝试使用再次启动它

# /etc/init.d/mysql start

你会看到它运作良好!而且停止它也没有问题。

于 2019-05-23T04:05:31.150 回答
3

我的解决方案;

Ubuntu 18.04 (WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

我改变了端口。它对我有用。你可以写另一个端口。示例 3355

于 2019-06-21T12:27:44.060 回答
2

更改host127.0.0.1对我有用。

编辑文件/etc/mysql/my.cnf并将下面提到的行添加到该部分:client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

在你完成它之后。执行以下命令。

sudo service mysql start
于 2015-02-08T03:17:30.523 回答
2

我在 Ubuntu 16.04 https://askubuntu.com/questions/172514/how-do-i-uninstall-mysql中卸载了 mysql

我重新安装了 mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04

这似乎奏效了。

于 2017-07-25T17:33:26.767 回答
2

首先创建目录 /var/run/mysqld

用命令:

mkdir -p /var/run/mysqld

然后将 rigths 添加到目录

chown mysql:mysql /var/run/mysqld

经过这次尝试

mysql -u root
于 2019-02-14T11:56:49.220 回答
2

您必须安装 mysql-server

apt install mysql-server
于 2021-07-12T17:04:48.340 回答
1

我还会检查mysql配置。我在自己的服务器上遇到了这个问题,但我有点太仓促并且错误地为我的机器配置了 innodb_buffer_pool_size。

innodb_buffer_pool_size = 4096M

它通常可以运行到 2048 年,但我想我没有足够的内存来支持 4 个演出。

我想这也可能发生在其他 mysql 配置设置中。

于 2015-07-23T08:35:56.600 回答
1

我在 CentOS VPS 上遇到了类似的问题。如果 MySQL 在启动后无法启动或一直崩溃,请尝试以下步骤:

1)找到my.cnf文件(我的位于/etc/my.cnf)并添加以下行:

innodb_force_recovery = X

用 1 到 6 的数字替换 X,从 1 开始,如果 MySQL 无法启动,则递增。设置为 4、5 或 6 可以删除您的数据,因此请注意并阅读http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

2) 重启 MySQL 服务。只有 SELECT 会运行,此时这是正常的。

3) 使用 mysqldump 逐一转储所有数据库/模式,不要压缩转储,因为无论如何您都必须在以后解压缩它们。

4) 仅移动(或删除!)/var/lib/mysql 中的 bd 目录,保留根目录中的各个文件。

5) 停止 MySQL,然后取消注释 1) 中添加的行。启动 MySQL。

6) 恢复所有在 3) 中倾倒的 bd。

祝你好运!

于 2017-03-13T20:26:23.707 回答
1

在终端提示符下尝试以下操作:

sudo mysql

一旦允许您进入,您就可以创建一个新用户并授予他们需要访问的特定数据库的所需权限。

Mysql 5.7 改变了一些东西,默认情况下使用 auth_socket 插件(而不是 mysql_native_password)作为 root 来保护帐户免受黑客攻击。您可以通过为 root 设置插件字段来覆盖它,但除非您有充分的理由,否则您可能不应该绕过保护。尤其是当sudo mysqlmysql -u root -p无论如何更容易的时候。

我从Raspberry Pi帮助网站找到了这个信息——所有地方。在 Lubuntu 18.04 惹恼了我几个小时之后,它就像一个魅力。

于 2018-08-28T03:06:31.653 回答
1

有时只是你的服务器没有足够的空间,只需要释放一些空间(比如清除日志文件),然后启动mysql:

/etc/init.d/mysql start

于 2019-05-20T15:13:29.197 回答
1

我的情况是/etc/目录下的mysql改名为mysql_bk,复制mysql_bk就好了

sudo cp -r /etc/mysql_bk/ /etc/mysql/

然后

service mysql restart
于 2020-06-04T02:52:51.467 回答
1

我有同样的问题。删除并重新安装mysql后,确实发生了这个问题。

注意:您的数据将被删除!不幸的是,当 mysql 损坏时,我没有找到备份 mysql 文件的方法(如果您知道这样做的方法,请在评论中注明)。
如果您在 mysql 中的数据对您无关紧要(就像我尝试在新安装的操作系统中安装 mysql 时一样),请使用此方法。

问题:

是什么导致了问题?首先,我曾经apt remove重新安装 mysql,但这项工作在 mysql 中导致错误:

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

使固定:

然后我使用命令purge重新安装mysql并且它工作:

  1. sudo apt purge mysql*(这将清除您的所有数据!);
  2. sudo apt autoremove
  3. sudo apt install mysql-server(添加您需要的应​​用程序!)

完成这些步骤后,只需运行sudo mysql -u root.

于 2021-10-21T08:40:58.753 回答
0

错误:Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

有时是由于 mysql 服务器出现故障,在实时服务器中我认为您应该重新启动服务器,并且在 localhost 中您需要重新启动 mysql 服务器。

于 2014-02-11T09:54:37.300 回答
0

我在 Ubuntu 的虚拟机上运行我的 MySQL,所以当我重新启动主机和虚拟机时,IP 发生了变化。我已将 mysql 配置为在 IP 192.168.0.5 上运行,现在由于 IP 的动态分配,我的新 IP 为 192.168.0.8

如果您有同样的问题,只需使用命令检查您的 ip ifconfig

使用命令检查您的 MySQL 绑定cat /etc/mysql/my.cnf | grep bind-address

如果两个IP相同,则重新安装您的mysql服务器

如果没有,请/etc/network/interfaces使用 nano、vi、vim 或任何您喜欢的方式更改您的 IP。

我更喜欢sudo nano /etc/network/interfaces

并输入以下内容

auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0

保存接口文件,重新启动您的接口sudo ifdown eth0&&sudo ifup eth0用您的网络接口替换“eth0”

重新启动 MySQL sudo service mysql stop,然后sudo service mysql start

如果你和我有同样的问题,你很高兴!

于 2015-06-16T18:16:06.350 回答
0

此解决方案可以帮助其他人,有时修复非常简单。

在您的实时环境中重新启动 mysql 服务器和 apache

sudo service mysql restart
sudo apache services restart

这是安装插件或执行任何数据库命令时的常见问题。

于 2015-06-16T22:10:09.747 回答
0

在archlinux上我遇到了这个错误,问题是mysqld-service没有运行。

但是我无法systemctl start mysqld按照 Archlinux 文档中的说明启用 mysql-service。我认为错误类似于

未找到 mysqld.service

我首先需要重新启动系统。

然后我再次输入命令(并输入systemctl enable mysqld),现在mysql能够找到创建的mysql.sock.

于 2016-03-08T15:18:19.820 回答
0

当我在 digitalocean 上调整液滴的大小时,我遇到了这种类型的问题。我已经升级了 mysql 版本并为我工作。这是我应用的教程 - https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html

于 2016-03-27T13:30:22.627 回答
0

我尝试了几乎所有列出的解决方案,但没有一个对我有用,直到我重新启动机器,然后当我发出命令“service mysql restart”时 mysql 服务器重新启动。

于 2016-05-23T15:39:42.333 回答
0

在我的情况下,问题是 /etc/mysql/my.cnf 中的绑定地址,然后:

纳米 /etc/mysql/my.cnf

搜索绑定地址并删除带有主机 ip 的特定地址(不是 127.0.0.1)

于 2016-08-23T18:51:11.933 回答
0

mysql.sock 文件在 MariaDB 启动时创建,在 MariaDB 关闭时删除。如果 MariaDB 没有运行,它就不会存在。也许你没有安装 MariaDB。您可以按照以下说明进行操作: https ://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 最佳

于 2017-03-26T21:09:06.583 回答
0

只是与你们分享,我遇到了同样的问题并使用以下命令解决了

sudo ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock

我从 my.cnf 和错误中硬链接两个位置

我从 此处输入链接描述中得到了这个答案

于 2021-03-13T03:14:59.450 回答
0

对于那些通过Vitess使用 MySql 的人。

由于传递给它的语法错误(忘记添加到 SQL 命令的末尾),我在vtttablet组件收到此错误,如入门文档中的示例所示;init_db.sql

apiVersion: v1
kind: Secret
metadata:
  name: my-cluster-config
type: Opaque
stringData:
  users.json: |
    {
      "user": [{
        "UserData": "user",
        "Password": "pass"
      }]
    }
  init_db.sql: |
    # This file is executed immediately after mysql_install_db,
    # to initialize a fresh data directory.
    CREATE DATABASE IF NOT EXISTS my_db <--- No ';' at the end

完整的错误日志:

TabletManager.ReplicationStatus()(在 zone1from 上)错误:net.Dial(/vt/socket/mysql.sock) 到本地服务器失败:拨打 unix /vt/socket/mysql.sock:连接:没有这样的文件或目录(errno 2002 )

于 2021-06-21T14:37:06.327 回答
0

唯一对我有用的是从我的系统中完全卸载 MYSQL。所以我做了以下事情:

sudo apt-get remove mysql-server -y
sudo rm -r /var/lib/mysql
sudo rm -r /etc/mysql
sudo apt-get remove mysql-client -y
sudo apt-get remove mysql-common -y
sudo apt-get remove phpmyadmin -y
sudo apt-get install mysql-server -y
于 2022-01-03T23:10:45.453 回答
0

如果你有“Unit mysql.service not found”错误,你应该安装“sudo apt-get install mysql-server”

于 2022-01-06T17:21:26.923 回答
-1

在 /etc/mysql/my.cnf 下找到带有 mysql 配置的 my.cnf 文件(相应地更改它显示套接字的位置)

port            = 3306
socket          = /tmp/mysql.sock

这是一些特定程序的条目以下值假设您至少有 32M 内存

这被正式称为 [safe_mysqld]。这两个版本目前都已解析。

[mysqld_safe]
socket          = /tmp/mysql.sock
nice            = 0
于 2013-09-15T03:25:59.540 回答
-1

在我认识的lampp中,它不能识别mysql命令。尝试

sudo /opt/lampp/bin/mysql

它将打开 mysql 终端,您可以在其中与数据库进行通信..

于 2016-07-19T07:03:25.443 回答