错误 2002 (HY000): 无法通过套接字连接到本地MySQL服务器

我需要登录mysql

[root @ localhost〜]# mysql -uroot -p123456

警告: 在命令行界面上使用密码可能不安全.

错误 2002 (HY000): 无法通过套接字‘/var/lib/mysql/mysql.sock连接到本地MySQL服务器’ (2)

我发现路径/ var / lib / mysql /中没有mysql.sock.

检查mysql.sock的路径

[root @ localhost〜]# 聚苯乙烯 | grep MySQL

根 23408 1 0 06:01 点/ 0 00:00:00 /bin / sh / usr / bin / mysqld_safe –datadir = / sctsapp /数据/ mysql–pid文件

= /数据/mysql/localhost.localdomain.pid

MySQL的 24029 23408 0 06:01 点/ 0 00:00:00 /的usr / sbin / mysqld的 –basedir = / usr –datadir = /数据/ mysql

–plugin-dir = / usr / lib64 / mysql / plugin –用户= MySQL –日志错误= / var / log / mysqld.log

–pid文件= / data / mysql / localhost.localdomain.pid –套接字=/数据/mysql/mysql.sock

根 24784 8954 0 06:07 点/ 0 00:00:00 grep MySQL

您在/ var / spool / mail / root中有新邮件

但是客户端在登录mysql时在/ var / lob / mysql路径中搜索mysql.sock, 因此客户找不到.

 

1. 登录mysql时指定mysq.sock路径.

[root @ localhost〜]# mysql -uroot -px9uLCqlkAfez9p6m -S /data/mysql/mysql.sock

警告: 在命令行界面上使用密码可能不安全.

欢迎使用MySQL监控器. 命令以 ; 或 g.

您的MySQL连接ID为 128

服务器版本: 5.6.21 MySQL社区服务器 (液化石油气)

版权 (C) 2000, 2014, Oracle和/或其附属公司. 版权所有.

Oracle是Oracle Corporation和/或其公司的注册商标。

会员. 其他名称可能是其各自所有者的商标.

输入“帮助”;’ 或‘ h’ 求助. 输入‘ c’ 清除当前输入语句.

MySQL的>

 

2. 加 [客户] my.cnf中的域, 并指定mysql.sock的真实路径

vim /etc/my.cnf

[客户]

端口= 3306

套接字= / data / mysql / mysql.sock

保存并退出,重启mysql, 再次登录mysql

[root @ localhost〜]# 服务mysql重启

关闭MySQL…. 成功!

启动MySQL. 成功!

[root @ localhost〜]# mysql -uroot -p123456

警告: 在命令行界面上使用密码可能不安全.

欢迎使用MySQL监控器. 命令以 ; 或 g.

您的MySQL连接ID为 1

服务器版本: 5.6.21 MySQL社区服务器 (液化石油气)

版权 (C) 2000, 2014, Oracle和/或其附属公司. 版权所有.

Oracle是Oracle Corporation和/或其公司的注册商标。

会员. 其他名称可能是其各自所有者的商标.

输入“帮助”;’ 或‘ h’ 求助. 输入‘ c’ 清除当前输入语句.

MySQL的>

 

3. 制作mysql.sock的链接, 您可以在不指定mysql.sock路径的情况下登录mysql.

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

 

附件:

mysql.sock的功能

mysqld_safe启动时,mysql将在默认路径/ tmp /中生成一个sock文件.

此文件用于客户端和服务器之间的连接。假设我们删除mysql.sock

因为失误.

[root @ 10-186-20-46本地]# cd / tmp

[root @ 10-186-20-46 tmp]# 总共 8

-rw-r–r– 1 根根 1201 君 25 09:59 my.cnf srwxrwxrwx 1 MySQL的 0 君 25 09:46 mysql.sock

-rw-rw-r– 1 zabbix zabbix 4 君 16 15:43 zabbix_agentd.pid

[root @ 10-186-20-46 tmp]# rm mysql.sock rm: 卸下插座

mysql.sock? ÿ

[root @ 10-186-20-46 tmp]# mysql -uroot -p输入

密码: 错误 2002 (HY000): 无法连接到本地MySQL服务器

通过套接字“ /tmp/mysql.sock” (2)

[root @ 10-186-20-46 tmp]#

您会发现您无法从本地主机登录mysql.

如果在一台服务器上安装了多个mysql, 因此将创建许多mysqlxxxx.sock

在路径/ tmp /中,当启动了不同的mysqld_safe时. 但是您可以指定mysqlxxxx.sock的路径

在my.cnf。中,但是您只安装了一个客户端, 因此,如果您要登录其他mysql服务, 您

必须指定mysqlxxxx.sock的不同路径.

注意:

如果许多mysql服务使用相同的用户名和密码, 而你只想登录一个mysql

服务。您必须注意mysqlxxxx.sock的路径,以避免登录错误的服务.

总而言之, 当许多mysql服务在同一台服务器上运行时,最好保持密码不同.

发表评论