1.首先查看 /tmp 目录下有没有 mysql.sock
在终端上;prompt> ls /tmp | grep mysql.sock
结果发现该目录下没有mysql.sock
2,创建 /tmp/mysql.sock 的方法
首先sudo vi /etc/mysql/my.cnf ,通过底行的查找命令 : :/socket/ 就找到 了socket的路径;
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
#
# * IMPORTANT
# If you make changes to these settings and your system uses apparmor, you may
# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
#
:/socket/
socket = /var/run/mysqld/mysqld.sock
然后创建 链接文件:sudo ln -s /var/run/mysqld.sock /tmp/mysql.sock
3.重新测试一下问题解决;
说明: mysql可以通过 tcp/ip 连接,也可以通过unix socket 链接,好像后者更快;以下时 c api 下实现的链接;
当连接参数中 host 指派为NULL 或者为 “localhost” ,且端口号指派为0, socket 指派为 NULL 时,默认为socket连接。