我的问题开始与我不能登录根在我的mysql安装更多。我试图运行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

我不知道这是否正常。但我把这些信息也包括进来,以防有用。

我最终决定卸载并重新安装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。在各自的位置都不好。

/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-server和mysql-client。但我注意到它并没有提示我输入密码。它不是应该要求输入管理员密码吗?


查找系统中所有的套接字文件:

sudo find / -type s

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

一旦你找到套接字被打开的位置,在/etc/my.cnf文件中添加或编辑这一行,并附上套接字文件的路径:

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

Sometimes the system startup script that launched the command line executable specifies a flag --socket=path. This flag could override the my.cnf location, and that would result in a socket not being found where the my.cnf file indicates it should be. Then when you try to run the mysql command line client, it will read my.cnf to find the socket, but it will not find it since it deviates from where the server created one. So, Unless you care where the socket resides, just changing the my.cnf to match should work.

然后停止mysqld进程。具体操作方法因系统而异。

如果你是linux系统的超级用户,如果你不知道你的Mysql设置使用的具体方法,试试下面的其中一个:

服务mysqld停止 /etc/init.d / mysqld停止 Mysqladmin -u root -p shutdown 一些系统没有设置一个优雅的方式来停止mysql(或者由于某种原因mysql没有响应),你可以强制终止mysql: 一步:pkill -9 mysqld 两步(最不可取): 使用pgrep mysql或ps aux | grep mysql | grep -v grep查找mysql的进程号 假设进程id是4969,终止kill -9 4969

执行此操作后,您可能希望在/var/run/mysqld/中查找一个pid文件并删除它

确保套接字上的权限是这样的,无论运行mysqld的用户可以读/写它。一个简单的测试是将其打开到完全读/写,看看它是否仍然有效:

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

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

另外,运行mysqld进程的用户必须能够访问套接字所在的目录。


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

我认为由于sql库/包更新发生了错误,所以如果你正在进行一些升级,请尝试一下:)


解决方法简单多了。

First, you have to locate(in Terminal with "sudo find / -type s") where your mysql.sock file is located. In my case it was in /opt/lampp/var/mysql/mysql.sock Fire up Terminal and issue sudo Nautilus This starts your Files manager with super user privileges From Nautilus navigate to where your mysql.sock file is located Right click on the file and select Make Link Rename the Link File to mysqld.sock then Right click on the file and Cut it Go to /var/run and create a folder called mysqld and enter it Now right click and Paste the Link File Voila! You will now have a mysqld.sock file at /var/run/mysqld/mysqld.sock :)


你可以找到mysqld。如果您已经安装了mysql-server,请在/var/run/mysqld中插入 通过sudo apt-get安装mysql-server


这应该在终端中完成,在服务器内部,当你的mysql数据库没有正确安装,当你得到这个错误:'无法连接到本地mysql服务器通过套接字'/var/run/mysqld/mysqld。袜子(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

在/etc/mysql/my.cnf目录下找到my.cnf文件 (相应地改变它表示socket的位置)

port            = 3306
socket          = /tmp/mysql.sock

这里是一些特定程序的条目 下面的值假设您至少有32M ram

它的正式名称是[safe_mysqld]。两个版本目前都进行了解析。

[mysqld_safe]
socket          = /tmp/mysql.sock
nice            = 0

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


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

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

错误:无法通过socket '/var/run/mysqld/mysqld连接到本地MySQL服务器。袜子”(2)

有时是由于mysql服务器宕机,在live服务器我认为你应该重新启动服务器,也在localhost你需要重新启动mysql服务器。


如果你的系统上有很多数据库和表,如果你在my.cnf中设置了innodb_file_per_table,那么你的mysql服务器可能已经用完了打开的对象/文件(或者这些对象的描述符)。 设置一个新的最大数字

open-files-limit = 2048

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


试试这个命令,

sudo service mysql start

*错误:“不能通过套接字连接到本地MySQL服务器/ var /跑步/ mysqld / mysqld。袜子”(2)“

解决方案

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

删除mysql-server 删除mysql客户端 Sudo apt-get remove mysql-common Sudo apt-get删除phpmyadmin

然后重新安装

安装mysql-server-5.6

该操作将额外占用164mb的磁盘空间。

你想继续吗?[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(每个密码前u 应该使用) 输入密码: 注意:输入的密码需与安装时间一致 mysql的密码(如。root,system,admin,rahul等) 然后输入 使用rahul_db(数据库名);

谢谢。* *


由于多次安装mysql而出现此错误。 执行如下命令:

ps -A|grep mysql

通过以下命令终止进程:

sudo pkill mysql

然后运行命令:

ps -A|grep mysqld

也可以通过运行:

sudo pkill mysqld

现在你已经完全设置好了,只需运行以下命令:

service mysql restart
mysql -u root -p

又有很好的工作mysql吗


临时解决方案

也许有人正面临这个问题。我在Ubuntu 14上使用Mysql工作台,得到了这个错误。

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下。查看其他永久解决方案的答案。


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

sudo service mysql restart

将主机更改为127.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

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

如果你有同样的问题,用ifconfig命令检查你的ip。

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

如果两个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

如果你和我有同样的问题,你可以去!


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

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

sudo service mysql restart
sudo apache services restart

当您安装插件或执行任何数据库命令时,这是一个常见问题。


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

mysql-server不再安装了(不知怎么的它已经被删除了),但我不能安装它,因为有一些损坏的包和依赖关系问题/冲突。

最后我不得不重新安装mysql

sudo apt-get remove mysql-client
sudo apt-get install mysql-server

错误2002 (HY000):无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)

在/etc/my.cnf中添加以下行:

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

然后重新启动服务: Service mysql restart

这对我很有效


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

innodb_buffer_pool_size = 4096M

它通常可以正常运行到2048年,但我想我没有支持4g所需的内存。

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


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

Service mysql restart


安装完成后启动MySQL服务:

Ubuntu的:

sudo service mysql start;

对于CentOS或RHEL:

sudo service mysqld start;

在archlinux上,我遇到了这个错误,问题是mysql服务没有运行。

然而,我无法启用mysql-service与systemctl启动mysqld在Archlinux文档中的指示。我想这个错误是

mysqld。未找到服务

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

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


当我在数字海洋上调整液滴大小时,我有这种类型的问题。我已经升级了mysql版本,适合我。这是我应用的教程- https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html


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


在lampp中,正如我所认识的,它不识别mysql命令。 试着用

sudo /opt/lampp/bin/mysql

它将打开mysql终端,在那里你可以与数据库通信。


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

/ etc / mysql / my . cnf纳米

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


在Ubuntu的MySQL 5.6和5.7版本中,当MySQL服务停止或重新启动时,var/run/mysqld/将消失。这将阻止MySQL运行。找到了这个解决方案,它不是完美的,但至少它可以在停止/重启后运行:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

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

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

innodb_force_recovery = X

将X替换为从1到6的数字,从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)中添加的行。

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

好运!


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


我在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

这似乎奏效了。


在ubuntu上使用XAMPP:

在/var/run目录中创建一个名为mysqld的文件夹。可以使用sudo mkdir /var/run/mysqld.命令来完成 创建mysql的符号链接。socks文件是由XAMPP服务器在启动时创建的。可以使用sudo ln -s /opt/lampp/var/mysql/mysql命令。袜子/var/run/mysqld/mysqld.sock。

注意:mysql. exeSock文件是在服务器启动时创建的,在服务器停止时删除的,所以有时你创建的链接可能会出现故障,但只要你使用sudo /opt/lampp/lampp start或任何其他方式启动了服务器,它就应该工作。

启动服务器(如果服务器尚未运行),并尝试再次执行您的程序。

好运!我希望你这次能逃脱惩罚。


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

sudo mysql

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

Mysql 5.7修改了一些东西,默认使用auth_socket插件(而不是mysql_native_password)作为root来保护帐户不被黑客攻击。你可以通过为root设置插件字段来覆盖这个保护,但是除非你有很好的理由,否则你可能不应该绕过这个保护。尤其是当sudo mysql比mysql -u root -p简单的时候。

我从树莓派的帮助网站上找到了这个信息。在Lubuntu 18.04让我烦了几个小时后,效果很好。


我在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

这个过程没有任何构型。

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

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


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

用命令:

mkdir -p /var/run/mysqld

然后给dir添加权限

chown mysql:mysql /var/run/mysqld

在这次尝试之后

mysql -u root

我想你的MySQL服务器还没有启动。因此,使用以下命令之一启动服务器。

#services mysql start

or

#/etc/init.d/mysql start

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

/etc/init.d/mysql start


我也有同样的问题。在挣扎了一个小时后,我找到了一种无需重新安装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

你会发现它工作得很好!而且阻止它也没有问题。


确保您无法访问的套接字文件路径与'/var/run/mysqld/mysqld相同。Sock ',否则改变你的路径。 停止mysqld

$ sudo /etc/init.d/mysqld stop

如果进程仍在运行;

$ sudo pkill -9 mysqld

删除将要创建socket的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

我的解决方案;

Ubuntu 18.04 (WSL)

/ etc / mysql / my . cnf

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

/ etc / mysql / mysql上。d / mysqld cnf。

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

我换了端口。这对我很有效。您可以编写另一个端口。3355年的例子


为什么会出现这个错误

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


命令我尝试和我如何修复它。

mysql -服务器运行正常,但当我试图连接它的给予

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

从那以后,一切都为我解决了。


我的情况是,/etc/目录中的mysql被重命名为mysql_bk,只需复制mysql_bk即可

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

then

service mysql restart

与你们分享一下,我遇到过同样的问题,使用下面的命令解决了

Sudo ln -s /var/lib/mysql/mysql.袜子/var/run/mysqld/mysqld.sock

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

我从 在这里输入链接描述


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

我在vttablet组件收到这个错误,由于语法错误(忘记添加;to end of SQL命令)传递给init_db。在get started docs中作为示例给出的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()(on zone1from)错误: net.Dial(/vt/socket/mysql.sock) to local server失败 / vt /套筒/ mysql。Sock: connect:没有这样的文件或目录(errno 2002)


您必须安装mysql-server

apt install mysql-server

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

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

问题:

是什么导致了这个问题?首先,我使用apt remove重新安装mysql,但这个工作导致mysql错误:

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

Fix:

然后我使用命令清除重新安装mysql,它工作:

Sudo apt清除mysql*(这将清除你所有的数据!); Sudo apt自动删除 安装mysql-server(添加你需要的应用程序)

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


对我来说唯一有效的方法是从我的系统中完全卸载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

如果你有“Unit mysql.”服务未发现"错误,请安装"sudo apt-get install mysql-server"


' / var /运行/ mysqld / mysqld。Sock '(2)'在弹出的操作系统

如果你吃了pop-os,就这么做

删除和清除之前安装的mysql服务器。然后按如下方式安装并配置。

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

我也有同样的问题,几个小时后我发现了这个: 我把它添加到/etc/mysql/my.cnf路径

[mysql]
innodb_force_recovery = 1

如果你使用mysqld,请使用以下命令:

[mysqld]
innodb_force_recovery = 1