错误 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服务在同一台服务器上运行时,最好保持密码不同.