今天在运维服务器的时候有出现提示mysql.sock找不到的问题。我们看看如何解决。这里在运行重启mysql的时候提示“
cant connect to mysql server through socket '/tmp/mysql.sock'
看来不存在这个文件。
通过命令 find / -name mysql.sock 全局查看是否有这个文件,是否有这个这个文件。这里我们用find命令找出这个文件的位置,如果find也找不到,那就重启一下mysql服务,重新生成一个。然后把他复制到soctek参数指定的路径下去。或者也可以建立一个软连接,比如这个文件在/var/lib/mysql.sock,socket参数指定的路径是/tmp/mysql.sock。
ln -s /var/lib/mysql.sock /tmp/mysql.sock
对于sock文件的路径,我们可以在/etc/my.cnf 中看。
# 设置mysql的安装目录
basedir = /usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir = /usr/local/mysql/data
character-set-server=utf8
# 允许最大连接数
max_connections=200
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#explicit_defaults_for_timestamp=true
通过这个命令可以看到mysql.sock的位置。