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

nrerum 发布于 2019-01-24 lamp 最后更新 2019-01-24 12:15 175 浏览

我在Ubuntu 12.04 LTS(Precise Pangolin)上安装了LAMP,然后在phpMyAdmin上设置了root密码。我忘记了密码,现在我无法登录。当我尝试通过终端更改密码时,我得到:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我怎样才能解决这个问题?我无法打开LAMP,将其卸载或重新安装。
已邀请:

saut

赞同来自:

我不得不说:

sudo /etc/init.d/mysqld start

qodio

赞同来自:

我有类似的问题。 mysql无法启动:

sudo service mysql start
start: Job failed to start
如果我禁用apparmor:
sudo aa-complain /etc/apparmor.d/*
问题消失了。问题是mysqld试图访问/run/mysqld/mysqld.sock但是apparmor配置文件只给了/var/run/mysqld/mysqld.sock的权限(/ var / run符号链接到/ run,所以这些实际上是一样)。不确定为什么mysqld没有使用var路径,因为这是在所有配置文件中设置的,但你可以通过将以下内容添加到/etc/apparmor.d/usr.sbin.mysqld来解决问题
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,

iid

赞同来自:

我想每当你得到错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
我建议先检查您的mysql守护程序是否正在运行...大多数情况下,默认情况下它不会运行。您可以通过/etc/init.d/mysqld status进行检查。 如果它没有运行,那么先启动它:
.../etc/init.d/mysqld start.
我打赌它会110%起作用。

cvitae

赞同来自:

只需将您的/opt/lampp/etc/my.cnf文件复制到/etc/mysql/my.cnf即可。 并在终端类型:

mysql -u root
您将收到mysql>提示:
mysql> Update mysql.user set Password=PASSWORD('your_password') where user='root';
mysql> FLUSH PRIVILEGES;

jiusto

赞同来自:

检查"bind-adress"参数。 否则尝试使用命令:

mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h for host 127.0.0.1,即localhost
  • 端口2206
  • -P(注意-P为大写),即MySQL的默认端口

xnemo

赞同来自:

我通过从mysqld部分([mysqld])中的/etc/mysql/my.conf中删除此行来解决此问题:

default-character-set=utf8
重启,它运行正常。

vfugit

赞同来自:

我遇到过同样的问题。我找到了这个。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
这是因为在启动MySQL客户端之前,您没有运行mysqld守护程序。运行第一个MySQL实例时,将自动创建文件/var/lib/mysql/mysql.sock。 修理: 首先启动MySQL守护进程,然后键入mysql
/etc/init.d/mysqld start
mysql

更改MySQL Root密码 默认情况下,MySQL数据库的root密码为空。从安全角度来看,将MySQL root密码更改为新密码是个好主意。
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;
完成后,登录后进行检查:
mysql -u root -p
Enter Password: <your new password>

lqui

赞同来自:

建议:总是问MySQL问题是什么。就我而言,less /var/log/mysql/error.log并看到:

2015-07-28 12:01:48 23224 [ERROR] /usr/sbin/mysqld: unknown variable 'log_slow_queries=/var/log/mysql/mysql-slow.log'
2015-07-28 12:01:48 23224 [ERROR] Aborting
这是抱怨,因为我在my.cnf中取消注释了此选项,但在评论此选项后,它开始没有任何问题。

pquo

赞同来自:

我通过执行以下命令解决了这个问题:

mysql.server start
如果您使用的是mac并使用brew来安装mysql,只需使用:
brew services start mysql

uharum

赞同来自:

您可以先检查服务是否正在运行,其中包括:

ps ax | grep mysql
我收到了这个回复:
6104 pts/0    S      0:00 /bin/sh /usr/bin/mysqld_safe
6431 pts/0    Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/m
没有响应意味着服务没有运行,所以:
service  mysql start

yalias

赞同来自:

我在Ubuntu上有这个,正如我想的那样,有多个mysqld实例。 看起来前一个没有完全停止,而新的已经开始了。运行'/etc/init.d/mysql stop'没有帮助,它总是返回'OK'并且在此之后立即自动启动了一个新实例:

        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28315
        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28570
        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28763
        ..... etc ...
幸运的是,以下命令修复了问题:
    $ sudo service mysql stop
    mysql stop/waiting
$ ps -ef | grep mysql
    29841 26858  0 10:59 pts/8    00:00:00 grep --color=auto mysql <--- IT's gone ! 
之后,我能够再次启动mysql并看到mysql.sock已成功创建。

taut

赞同来自:

我的服务器上的简单解决方案:在使用我的MySQL数据库迁移到新的Debian 7服务器后,我的hosts file中缺少第二个本地IP地址127.0.1.1。添加此解决了警告:

echo -e "\n127.0.1.1       $(hostname)" >> /etc/hosts

iaut

赞同来自:

在我不得不重新启动生产服务器后,我刚刚遇到了同样的问题。我在DigitalOcean Droplet上运行Debian  8.1(Jessie)。 这就是我为解决我的问题而采取的措施:

  1. 检查文件/var/run/mysqld/mysqld.sock是否存在。如果没有,请通过输入touch /var/run/mysqld/mysqld.sock手动创建它(这是我必须做的)。
  2. 因此MySQL进程可以使用此文件。通过输入chown mysql /var/run/mysqld/mysqld.sock来更改所述文件的所有权。
  3. 完成'2'后,输入service mysql restart/etc/init.d/mysql restart重启MySQL服务。
完成上述步骤后,我的问题就解决了。我很少遇到这个问题,而且可能有更好的方法,所以无论如何都要提供建设性的反馈:)。

kqui

赞同来自:

我的情况只是因为在/etc/mysql/my.cnf中定义了丢失的/var/log/mysql文件夹而导致mysql停止了。创建它后,我可以启动mysql,它像往常一样运行。

kautem

赞同来自:

要防止问题发生,必须从命令行正常关闭服务器,而不是关闭服务器电源。

shutdown -h now
这将在关闭机器之前停止正在运行的服务。 基于Centos,当您遇到此问题时,再次将其重新启动的另一种方法是移动mysql.sock:
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
service mysqld start
重新启动该服务会创建一个名为mqsql.sock的新条目

seaque

赞同来自:

我尝试了以下步骤:

  1. super user身份登录或使用sudo
  2. 使用gedit打开/etc/mysql/my.cnf
  3. 找到bind-address,并将其值更改为数据库服务器主机的IP地址。对我来说,这是localhost127.0.0.1
  4. 保存并关闭文件。
  5. 返回终端并执行sudo service mysql start
它对我有用。

oiusto

赞同来自:

另请检查您的my.conf(/etc/mysql/my.cnf)并查看bind-address是否设置为127.0.0.1。 如果没有,这可能会导致此问题。

godio

赞同来自:

sudo touch /var/lib/mysql/.force_upgrade
sudo rcmysql restart
我有这个问题时为我工作

set

赞同来自:

而不是使用localhost:

mysql -u myuser -pmypassword -h localhost mydatabase
使用127.0.0.1
mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase
(另请注意,-p和mypassword之间没有空格) 请享用 :)

in_ut

赞同来自:

如果您的安装是最近的,您应该确认您的安装是否是安装服务器...作为mysql-server-5.5 ..也许您只安装了“mysql”..这只是客户端而不是服务器。

baut

赞同来自:

您应该验证/var/run/mysqld组的所有者。如果它不是mysql.mysql,那么执行:

su root
chown mysql.mysql /var/run/mysqld

cnon

赞同来自:

尝试使用重新启动服务器

sudo /usr/local/mysql/support-files/mysql.server start
如果有任何错误,请按照以下步骤操作
  1. mysqld
您将看到以下日志。请注意MySQL目录中突出显示的部分
mysqld: Can't change dir to '/usr/local/mysql-5.7.14-osx10.11-x86_64/data/' (Errcode: 13 - Permission denied) 2016-10-04T14:09:19.392581Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-10-04T14:09:19.392847Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2016-10-04T14:09:19.392921Z 0 [Note] mysqld (mysqld 5.7.14) starting as process 1402 ... 2016-10-04T14:09:19.397569Z 0 [Warning] Can't create test file
/usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14:09:19.397597Z 0 [Warning] Can't create test file /usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14:09:19.397712Z 0 [ERROR] failed to set datadir to /usr/local/mysql-5.7.14-osx10.11-x86_64/data/
2016-10-04T14:09:19.397776Z 0 [ERROR] Aborting
2016-10-04T14:09:19.397795Z 0 [Note] Binlog end
2016-10-04T14:09:19.397925Z 0 [Note] mysqld: Shutdown complete
  1. sudo chown -R _mysql:_mysql /usr/local/mysql-5.7.14-osx10.11-x86_64
请注意上一步中来自/ usr / local的MySQL文件夹名称,在我的情况下,它是mysql-5.7.14-osx10.11-x86_64,您必须根据您提供的日志更新它以提供读取权限MySQL目录
  1. sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
SUCCESS!

ut_eos

赞同来自:

检查您是否拥有正确的权利:

sudo chmod 755 /var/lib/mysql/mysql
我有同样的问题,这对我有用。在这之后我能够启动MySQL。

ysequi

赞同来自:

在我的情况下,当我运行时,似乎我真的无法杀死mysql进程

sudo service mysql stop
ps -ef | grep mysql
mysql进程总是存在,它看起来像是阻塞了套接字文件而新的mysql进程本身就无法创建它。 所以这有帮助
cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
现在我可以使用登录数据库了
mysql -u root
然后更新root密码:
UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;
PS:我无法更新root passwod,看起来像“auth_socket”插件有问题,所以我不得不创建具有完全权限的新用户
insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";
这将创建没有密码的用户“超级”,然后您可以使用mysql -u super进行连接

womnis

赞同来自:

打开终端并输入:

sudo apt-get purge mysql-client-core-5.6
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-client-core-5.5
sudo apt-get install mysql-server  
MySQL数据库核心客户端和MySQL服务器包都将是相同的版本5.5。 MySQL Client 5.5和MySQL Server 5.5是Ubuntu 14.04中这些软件包的当前“最佳”版本,由软件包维护者决定。 如果您更愿意安装MySQL Client 5.6和MySQL Server 5.6,您还可以在Ubuntu软件中心找到mysql-client-core-5.6和mysql-server-5.6软件包。重要的是客户端和服务器版本号在任何一种情况下都匹配。 这对我有用。

dipsam

赞同来自:

做一个命令 sudo重启 为我工作。

xnam

赞同来自:

这对我有用:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
这会创建一个链接。

fet

赞同来自:

我找到了解决方案 在触发命令之前:mysql_secure_installation

  • 第1步:sudo systemctl stop mariadb
  • 第2步:sudo systemctl start mariadb
  • 第3步:mysql_secure_installation
然后它将询问root密码,您只需按Enter键并设置新的root密码即可。

aut_ea

赞同来自:

这个答案与在具有少量RAM的机器上更新到MySQL 5.6有关 我在Debian  8(Jessie)上从MySQL 5.5升级到5.6时遇到了同样的问题。 MySQL未启动(状态显示为活动/退出)并且只是使service mysql start无效,因为我从/var/logs/mysql/error.log日志文件中找到:

InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool
内存还不够:我只有256 MB的RAM。 在MySQL中有一个设置performance_schema。默认情况下,它在MySQL 5.5中关闭。 https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html 但是在MySQL 5.6中默认打开,只需在/etc/mysql/my.cnf文件中添加以下行并重新启动即可。
performance_schema = off
警告:关闭此设置可能会遇到性能问题,但我想在开发环境中不会出现问题。 此外,这篇文章可能有助于配置MySQL以使用最小内存Configuring MySQL to use minimal memory

umodi

赞同来自:

我遇到过同样的问题。如果您的MySQL服务被拒绝,有时会发生这种情况。 所以你必须开始它:

sudo service mysql start

taut

赞同来自:

对我来说,更新解决了这个问题: 在Ubuntu上:

sudo apt-get update
sudo apt-get upgrade
在CentOS上:
sudo yum update

yut

赞同来自:

/etc/mysql/my.cnf中,检查最后一行是:

!includedir /etc/mysql/conf.d/

znihil

赞同来自:

我通过杀死mysql进程解决了这个问题:

ps -ef | grep mysql
kill [the id]
然后我再次启动服务器:
sudo /etc/init.d/mysql restart
start也适用:
sudo /etc/init.d/mysql start
然后我登录为admin,我就完成了。

eet

赞同来自:

这可能是配置文件的问题。我遇到了类似的问题,我无法在网上找到解决方案。我注意到我有两个my.cnf文件,一个在/etc/mysql中,另一个在/etc中。 请按照以下步骤操作:

  1. 使用locate my.cnf检查计算机上的my.cnf文件。
  2. 如果有两个条目,即/etc/my.cnf/etc/mysql/my.cnf, 将/etc/mysql/my.cnf重命名为其他内容,例如/etc/mysql/my.cnf.old
尝试再次运行MySQL。

cet

赞同来自:

如果您尝试更改存储数据库的目录,但在配置文件中输入错误的目录(如第二个驱动器中的拼写错误D而不是准确的D_),也会发生此错误。它不会告诉你错字目录不存在,它会告诉你你没有访问它的权限(导致你尝试更改错字目录的权限,它会让你这样做)。因此,如果在更改目录时出现此错误,请仔细检查配置文件并确保没有输入错误。

eearum

赞同来自:

如果您使用的是Ubuntu,则可能是特权问题。 检查目录权限。仅在根组中是不够的,还在MySQL写入的目录上使用chmod(例如,/var/run/mysqld/用于创建mysqld.pid文件)。 这对我很有帮助。

ret

赞同来自:

如果您正在使用Amazon EC2,并且您在实例上遇到此问题,那么您只需执行以下操作:

sudo yum install mysql-server
sudo service mysqld restart
Amazon EC2没有安装服务器(仅安装了客户端),因此如果需要在您的实例上安装它,那么请尝试
 mysql -u root -p
检查是否有效。

zrerum

赞同来自:

For CentOS Linux release 7.3
The mysql.sock file path is /var/lib/mysql/mysql.sock
Edit /etc/my.cnf file and put below entry
This will solve your problem.
[client]
user=root
password=Passw0rd
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
bind-address=0.0.0.0
在此之后重启服务
service mysql restart

nqui

赞同来自:

在Debian服务器Jessie上,我的工作解决方案就是这样做

service mysql restart
service mysql reload
以root用户身份

kquis

赞同来自:

如果您的Linux计算机上安装了XAMPP,请尝试将my.cnf文件从/opt/lampp/etc/my.cnf复制到/etc/my.cnf。 然后,再次运行mysql -u root ......您现在应该拥有正确的套接字并能够运行MySQL客户端。

svelit

赞同来自:

根据经验,我说您需要检查服务器是否先运行,然后尝试配置MySQL。最后一个解决方案是重新安装MySQL。

hculpa

赞同来自:

您在本地运行,这意味着您的客户端在与服务器相同的计算机上运行。 确保您的Unix用户可以实际访问/读取/var/run/mysqld/mysqld.sock

ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock
如果没有,请咨询系统管理员或database administrator以提供对这些目录的充分读/写访问权限,或将套接字文件移动到其他位置。

lsunt

赞同来自:

我现在遇到了这个问题并解决了它。 虽然您安装了mysql-server,但是守护程序需要运行才能使客户端连接到它。 首先检查mysql服务器是否正在运行:

netstat -tap | grep mysql
你应该看到这样的东西:
$ sudo netstat -tap | grep mysql
tcp        0      0 localhost:mysql         *:*          LISTEN     6639/mysqld     
如果您没有运行服务器,请通过以下命令启动守护程序:
/etc/init.d/mysql restart
这应该解决您的问题,如果它已安装。

get

赞同来自:

它现在有效...... 我已按照教程Installing MariaDB 10.1.16 on Mac OS X with Homebrew来解决此问题。 但是不要忘记杀死或卸载MariaDB的旧安装。

zet

赞同来自:

安装mysql-server:

sudo apt-get install mysql-server
enter password as root
登录:
mysql -u root -p root
这里安装MySQL服务器时给出了-u user name-p password。它会起作用,因为它对我有用。

miure

赞同来自:

我也遇到了这个问题,但我刚才做了:

sudo service mysql restart 
它对我有用。

id_sed

赞同来自:

我有同样的问题。经过多次搜索,我没有找到任何答案。 最后,我检查了/tmp目录,其权限为755.我将其权限更改为777,mysqld启动良好,没有任何问题。

sit_et

赞同来自:

我看到所有这些答案,但没有一个提供重置密码和没有接受的答案的选项。实际的问题是他忘记了密码,所以他需要重置,而不是看它是否正在运行(安装与否),因为大多数这些答案都意味着。


重设密码 请按照以下步骤操作(如果您真的忘记了密码,可以提供帮助,即使您目前不在这种情况下也可以随时尝试):
  1. 停止mysql
    sudo /etc/init.d/mysql stop
    
    或者对于其他分发版本:
    sudo /etc/init.d/mysqld stop
    
  2. 以安全模式启动MySQL
    sudo mysqld_safe --skip-grant-tables &
    
  3. 使用root登录MySQL
    mysql -uroot
    
  4. 选择要使用的MySQL数据库
    use mysql;
    
  5. 重置密码
    update user set password=PASSWORD("mynewpassword") where User='root';
    
  6. 刷新权限
    flush privileges;
    
  7. 重新启动服务器
    quit
    
  8. 再次停止并启动服务器 Ubuntu和Debian:
    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start
    
    在CentOS,Fedora和RHEL上:
    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
    
  9. 使用新密码登录
    mysql -u root -p
    
  10. 输入新密码并再次享受您的服务器
这取自Reset a MySQL root password
更新来自@ Daniel的评论如下: 在MySQL 5.7中,mysql.user表字段中的密码字段已被删除,现在字段名称为'authentication_string',因此步骤5应为:
 update user set authentication_string=password('mynewpassword') where user='root';

bea

赞同来自:

不知何故,MySQL服务器进程没有创建套接字,或者客户端正在寻找错误位置的套接字。 我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是MySQL服务器在另一台主机上运行吗?如果是这样,请将-h <hostname>标志添加到终端中的MySQL客户端。 如果MySQL确实正在运行并在本地运行,请检查您的my.cnf文件。应该有像这样的一条线

socket = /var/run/mysqld/mysqld.sock
看看它是否与您在帖子中提到的套接字位置匹配。 根据经验,我认为最可能出现的情况是你的MySQL服务器根本没有运行,或者没有在你从终端运行MySQL客户端的同一主机上运行。

hquia

赞同来自:

我曾经遇到过这个问题并通过安装mysql-server解决了这个问题,因此请确保您已经安装了mysql-server,而不是mysql-client或其他东西。 该错误意味着文件/var/run/mysqld/mysqld.sock不存在,如果您未安装mysql-server,则该文件将不存在。但是如果mysql-server已经安装并且正在运行,那么您需要检查配置文件。 配置文件是:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
/etc/my.cnf中,套接字文件配置可以是/tmp/mysql.sock,而在/etc/mysql/my.cnf中,套接字文件配置可以是/var/run/mysqld/mysqld.sock。因此,删除或重命名/etc/mysql/my.cnf,让mysql使用/etc/my.cnf,那么问题可能就解决了。

hquae

赞同来自:

尝试这个:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>
另外(看看它是否正在运行):
telnet 127.0.0.1 3306 
可能只是my.cnf文件中的错误配置,在/etc/somewhere中(取决于Linux distribution)。

yeum

赞同来自:

我也遇到了这个问题,这些答案都没有帮助我。问题不同,但错误是由OP描述的。 我在/var/log/mysql中检查了MySQL的日志,我看到了这个:

150309  5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable   'lower_case_tables_names=1'
我打开了/etc/mysql/my.cnf文件并取消了该行#。在这之后,我能够连接到数据库。 老实说,我不知道问题是什么。由于维护,linode服务器计划重新启动,并且此错误无处不在。

snihil

赞同来自:

在我的情况下,问题是我的所有数据库中的页面损坏(检查mysql错误日志)。 我用Forcing InnoDB Recovery解决了它。诀窍是编辑/etc/mysql/my.cnf并添加

innodb_force_recovery = 4
略低于
[mysqld]
然后重启mysql。 检查一切正常后,再次删除该行。

sunde

赞同来自:

在我的情况下,它通过做一些R& D工作: 我可以使用连接到MySQL

root-debian#mysql -h 127.0.0.1 -u root -p
但它不适用于mysql -u root -p。 我在my.cnf中找不到任何bind-address。所以我在my.cnf中对参数socket=/var/lib/mysql/mysqld.sock进行了评论,这导致我的登录问题。 重新启动服务后,它很顺利:
root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

siure

赞同来自:

mysqld stop
mysql.server start

khic

赞同来自:

确保您拥有重要数据库的备份,然后尝试卸载MySQL相关的东西:

apt-get remove --purge mysql\*
然后再次安装:
apt-get install mysql-server mysql-client
这对我有用,数据保存。 如果PHP MySQL显示错误,您可能需要重新安装PHP MySQL:
apt-get install php5-fpm php5-mysql

ut_est

赞同来自:

我无法解释它,但在kubuntu 12.04.2之后

sudo apt-get autoremove linux-headers-3.2.0-37 linux-headers-3.2.0-37-generic
它开始起作用了

cet

赞同来自:

在Ubuntu 14.04(Trusty Tahr)上也一样。 如果你已经安装了XAMPP,安装mysql-server不是解决方案,因为你将访问另一个MySQL! 您必须使用正确的套接字才能访问。通常是这样的:

/opt/lampp/var/mysql/mysql.sock
相反,将其更改为:
/var/run/mysqld/mysqld.sock

gipsam

赞同来自:

在我的情况下,磁盘已满,mysqld无法启动。

iipsa

赞同来自:

在我的情况下,默认端口3306正被其他一些进程使用,因此它没有启动。在我停止了其他服务并做了sudo service mysql start后,它运行正常。顺便说一句,您可以使用类似sudo lsof -Pn -iTCP:3306的内容来查看谁可能正在使用该端口。

ysunt

赞同来自:

你检查过XAMPP是否正在运行?

sudo bash <path>/lampp start
对我来说,路径是 CODE_1的PLACEHOLDER

lmagni

赞同来自:

你的mysql服务器可能没有运行。通过在终端中键入mysql.server start确保它运行。

nut

赞同来自:

对我来说是: 打开/etc/mysql/my.cnf/etc/my.cnf并搜索“bind-address”。这是127.0.0.1。我将它转换为localhost,因此行结果应为'bind-address = localhost'。 否则,您应该使用bind-address指令中存在的IP地址运行MySQL服务器,即mysql -h 127.0.0.1

isunt

赞同来自:

升级MySQL为我修复了它。在基于RHEL的服务器上,只需运行:

sudo yum upgrade mysql-server