mysql socket连接有问题

原文:http://blog.sina.com.cn/s/blog_5f5716580100iyg9.html

mysql.sock文件是服务器与本地客户端进行通信的Unix套接字文件,其默认位置是/tmp/MySQL.sock。这有可能导致问题,原因在于,在某些版本的Unix上,任何人都能删除/tmp目录下的文件。

  在大多数Unix版本中,可对/tmp目录进行保护,使得文件只能被其所有这或超级用户(根用户)删除。为此,以根用户身份登录,并使用下述命令在/tmp目录上设置粘着位:

shell> chmod +t /tmp

  通过执行ls -ld /tmp,可检查是否设置了粘着位。如果最后一个许可字符是“t”,表明设置了粘着位。

  另一种方法是改变服务器创建Unix套接字文件的位置。如果进行了这类操作,还应让客户端程序知道文件的位置。能够以多种不同方式指定文件位置:

  在全局或局部选项文件中指定路 径。例如,将下述行置于文件/etc/my.cnf中:

[mysqld]
socket=/path/to/socket
[client]
socket=/path/to/socket

   在运行客户端程序时,在命令行上为mysqld_safe指定“--socket”选项。

  将MYSQL_UNIX_PORT环境变 量设置为Unix套接字文件的路径。

  重新从源码编译MySQL,以使用不同的默认Unix套接字文件位置。运行configure 时,用“--with-unix-socket-path”选项定义文件路径。

  用下述命令连接服务器,能够测试新的套接字位置是否工 作:

shell> mysqladmin --socket=/path/to/socket version

 

原文:http://hi.baidu.com/lyfxmu/item/8e35e2094f8f0930a2332a74

mysql socket连接有问题

最后通过这个命令解决了。

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock


看到的另外一篇帖子这么说:

楼主,这个mysql.sock应该是mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体,它比tcp快。通常遇到这个问题的原因就是你的mysql server没运行起来。 

看看你的 /tmp/mysql.sock 这个文件存在否?正常情况下它应该在那里的,或者用 netstat 看看结果中是否有 
Active UNIX domain sockets 
db200000 stream 0 0 0 db2000a0 0 0 /tmp/mysql.sock 这样的东西存在。



linux下连接本机mysql有两种方式:1、socket 方式2、tcp/ip方式你的估计就是这种问题,有些时候使用tcp/ip方式,有些时候是另外一种。所以你可以有两种方式解决:1、直接强制使用tcp/ip方式 2、把socket补上方法:1、mysql 后面加个 --protocol=tcpip2、 关闭 mysql , cd 到 /tmp 然后输入: ln -s /var/lib/mysql/mysql.sock mysql.sock , 启动 mysql


   编辑MySQL的配置文件/etc/my.cnf 
   为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值

为:/home/mysql/mysql.sock 。操作如下: 
   vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之) 
   # The MySQL server

 


    [mysqld] 
    port   = 3306 
    #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行) 
    socket  = /home/data/mysql/mysql.sock   (加上此行)

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值