搜鞥都哦 发表于 2018-10-9 10:58:11

error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

  1、今天安装了一个mysql 5.7 的二进制安装方式,在连接mysql数据库的时候报了如下错误:
  # mysql
  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  2、根据提示应该是sock文件不在,通过查看进程配置,发现如下
  # ps -ef | grep mysql
  root      919631250 11:18 pts/2    00:00:00 tail -f mysqld.log
  root   11404   10 14:13 pts/1    00:00:00 /bin/sh /home/mysql/sysinfo/mysql/bin/mysqld_safe --datadir=/my_data/sysinfo --pid-file=/my_data/sysinfo/iccsdb01.pid
  mysql    11616 114040 14:13 pts/1    00:00:00 /home/mysql/sysinfo/mysql/bin/mysqld --basedir=/home/mysql/sysinfo/mysql --datadir=/my_data/sysinfo --plugin-dir=/home/mysql/sysinfo/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/my_data/sysinfo/iccsdb01.pid --socket=/var/lib/mysql/mysql.sock
  由上可知mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,
  但Linux系统总是去/tmp/mysql.sock查找,所以会报错
  解决方法一
  1、创建连接文件到指定目录上
  ln -s /var/lib/mysql/mysql.sock/tmp/mysql.sock
  2、测试连接成功登陆
  # mysql -u root -p
  Enter password:
  Welcome to the MySQL monitor.Commands end with ; or \g.

  Your MySQL connection>  Server version: 5.7.18 MySQL Community Server (GPL)
  Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  mysql>
解决方法二
  修改“/etc/my.cnf”配置文件,在配置文件中添加“”选项和“”选项,并使用这两个选项下的“socket”参数值,与“”选项下的“socket”参数值,指向的socket文件路径完全一致。如下:
  
datadir=/my_data/sysinfo
  
socket=/var/lib/mysql/mysql.sock
  
...省略n行...
  

  

  
default-character-set=utf8
  
socket=/var/lib/mysql/mysql.sock
  

  

  
default-character-set=utf8
  
socket=/var/lib/mysql/mysql.sock
  修改完后,重启mysqld服务,即可解决此问题。


页: [1]
查看完整版本: error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)