我尝试连接到 mysql 服务器,但是它给出了套接字问题,我已将 my.cnf 从 /var/lib/mysql/mysql.sock 编辑为 /home/mysql/mysql.sock Nb:此问题在将 mysql db 文件移动到新目录之前存在。
[root@dc ~]# /usr/bin/mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@dc ~]# ps aux | grep mysqld
root 8472 0.0 0.0 108216 1596 pts/2 S 10:18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/home/mysql --socket=/home/mysql/mysql.sock --pid- file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 8691 0.1 0.0 543468 47860 pts/2 Sl 10:18 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/home/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/home/mysql/mysql.sock
root 8825 0.0 0.0 103356 852 pts/2 S+ 10:20 0:00 grep mysqld
my.cnf 下的 Mysqld 指令:
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock
答案1
尝试将套接字添加到客户端指令中的 my.cnf。
[mysql]
# CLIENT #
port = 3306
socket = /home/mysql/mysql.sock
[mysqld_safe]
socket = /home/mysql/mysql.sock
nice = 0
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
pid-file = /var/run/mysqld/mysqld.pid
socket = /home/mysql/mysql.sock
答案2
您是否已验证文件 /home/mysql/mysql.sock 存在且可读等?
我以前见过这种情况,存在正确问题,文件无法创建或无法访问。
另外,当您执行“/etc/init.d/mysqld restart”* 时日志中是否有任何错误?
// Mike *或任何你的操作系统需要重新启动守护进程/服务
答案3
您的 ps 输出显示,您的 mysqld 的套接字存储在:
/home/mysql/mysql.sock
但是你的 mysql 客户端尝试默认的:
/var/lib/mysql/mysql.sock
因此你可以尝试:
/usr/bin/mysql -u root -p -S /home/mysql/mysql.sock