Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2) (错误2002)

Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2) (错误2002),mysql,sockets,mysql-error-2002,Mysql,Sockets,Mysql Error 2002,我知道这是一个被问了很多次的问题,但我似乎无法从其他话题中找到任何解决方案 我所尝试的: 重新安装mysql服务器(因此不是客户端) chown-mysql:mysql/var/lib/mysql 查看my.cnf,那里似乎一切正常 已将绑定地址更改为本地主机 在某一点上,我似乎没有套接字文件和 sudo find/-type s | grep mysqld.sock不会给出任何结果 编辑 我现在输入了mysql\u config--socket,似乎在/var/run/mysqld/my

我知道这是一个被问了很多次的问题,但我似乎无法从其他话题中找到任何解决方案

我所尝试的:

  • 重新安装mysql服务器(因此不是客户端)
  • chown-mysql:mysql/var/lib/mysql
  • 查看my.cnf,那里似乎一切正常
  • 已将绑定地址更改为本地主机
  • 在某一点上,我似乎没有套接字文件和

    sudo find/-type s | grep mysqld.sock
    不会给出任何结果


编辑

我现在输入了
mysql\u config--socket
,似乎在
/var/run/mysqld/mysqld.sock中有一个socket文件

还检查了
apparmor_status
,得出以下结果:

apparmor module is loaded.
14 profiles are loaded.
14 profiles are in enforce mode.
   /sbin/dhclient
   /usr/bin/evince
   /usr/bin/evince-previewer
   /usr/bin/evince-previewer//sanitized_helper
   /usr/bin/evince-thumbnailer
   /usr/bin/evince-thumbnailer//sanitized_helper
   /usr/bin/evince//sanitized_helper
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/lib/cups/backend/cups-pdf
   /usr/sbin/cups-browsed
   /usr/sbin/cupsd
   /usr/sbin/mysqld
   /usr/sbin/tcpdump
0 profiles are in complain mode.
3 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
3 processes are unconfined but have a profile defined.
   /sbin/dhclient (1089) 
   /usr/sbin/cups-browsed (1415) 
   /usr/sbin/cupsd (16608) 
在所有这些之后,
/etc/init.d/mysql启动仍然失败

my.cnf中的设置

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

我签出了
/var/log/error.log
,当我尝试
#/etc/init.d/mysql start
时,日志中会显示以下报告:

150528 22:58:19 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
150528 22:58:19 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
150528 22:58:19 [Note] /usr/sbin/mysqld (mysqld 5.5.43-0ubuntu0.14.04.1) starting as process 14608 ...
150528 22:58:19 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
150528 22:58:19 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
150528 22:58:19 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
150528 22:58:19 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
150528 22:58:19 InnoDB: The InnoDB memory heap is disabled
150528 22:58:19 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150528 22:58:19 InnoDB: Compressed tables use zlib 1.2.8
150528 22:58:19 InnoDB: Using Linux native AIO
150528 22:58:19 InnoDB: Initializing buffer pool, size = 128.0M
150528 22:58:19 InnoDB: Completed initialization of buffer pool
150528 22:58:19 InnoDB: highest supported file format is Barracuda.
150528 22:58:19  InnoDB: Waiting for the background threads to start
150528 22:58:20 InnoDB: 5.5.43 started; log sequence number 140421610
150528 22:58:20 [Note] Server hostname (bind-address): 'localhost'; port: 3306
150528 22:58:20 [Note]   - 'localhost' resolves to '127.0.0.1';
150528 22:58:20 [Note] Server socket created on IP: '127.0.0.1'.
150528 22:58:20 [ERROR] /usr/sbin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
150528 22:58:20 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
150528 22:58:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

有人能帮我解决一下如何在不丢失数据库的情况下修复它吗?你的mysql安装已经安装好了:

150528 22:58:20 [ERROR] /usr/sbin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)

它一开始没有启动,因此没有套接字文件。您缺少内部/core
mysql
数据库中的数据,这是一个非常糟糕的迹象。

如果您尚未初始化数据目录,现在是在启动
mysqld
之前初始化它的时候了

您可以运行mysql提供的这两个脚本中的任何一个。在shell提示符下,以以下方式运行它们:

# mysql_secure_installation

\mysql\u install\u db--user=mysql\
--basedir=\
--datadir=/var/lib/mysql/data

mysql\u install\u db
将调用
mysqld
,使用
--引导程序
--跳过授权表
选项。

mysql\u install\u db
cmd完成了这一任务。我又有一个插座了,我“我现在可以再次登录mysql了。Thx

您是否使用目录
/mysql/data/dir
作为数据目录?您是否也相应地更新了
my.cnf
文件?默认情况下,MySQL将在
/var/lib/MySQL
中查找。我看到您正在使用Ubuntu,所以还要检查
apparmor
是否处于MySQL的强制模式(命令是
apparmor\u status
)。目录是一种格式,它的实际位置确实是
/var/lib/mysql
您需要通过运行
mysql\u install\u db
mysql\u secure\u installation
来初始化mysql数据目录。然后您可以启动
mysqld
。当我运行
mysql\u secure\u安装时
我需要输入根密码,之后它会给出相同的错误-->无套接字文件。因此,我运行了
mysql\u install\u db
并按照cmd的建议进行了操作,因此我能够进入mysql并
show tables
也工作了,但是从这些表中选择会出现以下错误
error 1017(HY000):找不到文件:'./mysql/user.frm'
我不相信他的安装是无效的。我想他没有初始化数据目录。现在看来我根本没有套接字文件。虽然当我运行
mysql\u config--socket
时,它说它在那里,但当我检查文件夹时,里面什么都没有。所以误差保持不变
# mysql_install_db --user=mysql \
         --basedir=<path to mysql install dir> \
         --datadir=/var/lib/mysql/data