免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13475 | 回复: 11
打印 上一主题 下一主题

[系统管理] mysql.sock路径问题 [复制链接]

论坛徽章:
5
戌狗
日期:2014-06-09 10:29:10酉鸡
日期:2014-12-01 16:05:27处女座
日期:2015-01-07 18:35:262015亚冠之水原三星
日期:2015-06-03 09:26:222015亚冠之布里斯班狮吼
日期:2015-06-15 10:53:54
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-19 16:39 |只看该作者 |倒序浏览
由于存储空间问题,需要将数据库的路径改到其他分区(mysql)
先后修改了文件
1./etc/my.cnf
  1. datadir=/opt/newdir
  2. socket=/opt/newdir/mysql.sock
复制代码
2. /etc/rc.d/init.d/mysqld
  1. get_mysql_option mysqld datadir "/opt/newdir/"
复制代码
修改后,启动数据库
/etc/init.d/mysqld start
并没有报错。

之后执行mysql -uUser -pPass 报错如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


虽然通过建立软连接/var/lib/mysql/mysql.sock,问题解决,但是不明白执行mysql命令为什么还去找之前的路径?

谢过 !

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
2 [报告]
发表于 2015-06-19 17:28 |只看该作者
  1. [root@66a ~]# mysql --print-defaults
复制代码
看看有没输出
  1. mysql --help
  2. Default options are read from the following files in the given order:
  3. /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
复制代码
版本不一,我这台在/etc/my.cnf之前会先查/etc/mysql/my.cnf

当初mysql-server要是编译安装的话,查下编译参数,可能安装的时候指定了sock路径在/var/lib/mysql/mysql.sock,没指定的话,默认情况就是这个路径

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
3 [报告]
发表于 2015-06-19 20:29 |只看该作者
本帖最后由 聆雨淋夜 于 2015-06-19 21:22 编辑

我没有用过mysql,猜测一下,mysql客户端的配置你改了吗?


more /etc/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
4 [报告]
发表于 2015-06-19 23:53 |只看该作者
我用源码包装了一下mysql5.1
源码包自带的配置文件中有这么一段:

[client]
#password        = your_password
port                = 3306
socket                = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port                = 3306
socket                = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M

你应该只改了服务器部分的socket路径

论坛徽章:
5
戌狗
日期:2014-06-09 10:29:10酉鸡
日期:2014-12-01 16:05:27处女座
日期:2015-01-07 18:35:262015亚冠之水原三星
日期:2015-06-03 09:26:222015亚冠之布里斯班狮吼
日期:2015-06-15 10:53:54
5 [报告]
发表于 2015-06-25 14:10 |只看该作者
回复 2# hjfeng1988


    mysql --print-defaults 输出为空
    我是通过yum安装的,且只有一个my.cnf文件

论坛徽章:
5
戌狗
日期:2014-06-09 10:29:10酉鸡
日期:2014-12-01 16:05:27处女座
日期:2015-01-07 18:35:262015亚冠之水原三星
日期:2015-06-03 09:26:222015亚冠之布里斯班狮吼
日期:2015-06-15 10:53:54
6 [报告]
发表于 2015-06-25 14:12 |只看该作者
回复 4# 聆雨淋夜


    我是通过yum安装的,my.cnf文件内只有[mysqld_safe]和[mysqld]两个域

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
7 [报告]
发表于 2015-06-25 14:27 |只看该作者
回复 5# kaede_1


yum安装的mysql-server,默认的服务端socket和客户端socket都在/var/lib/mysql/mysql.sock
  1. [mysqld]
  2. port                = 3306
  3. socket                = /tmp/mysql.sock
复制代码
只是配置服务端的socket位置
若想实现本机运行mysql -uUser -pPass不指定客户端socket而调用/opt/newdir/mysql.sock,则需要在/etc/my.cnf增加[client]字段
  1. [client]
  2. socket=/opt/newdir/mysql.sock
复制代码
总之一句:socket分服务端和客户端

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
8 [报告]
发表于 2015-06-26 01:38 |只看该作者
回复 7# hjfeng1988
刚好最近在学mysql,大师你帮我讲讲
1,socket通信是啥,用在什么情况下,我好像记得mysql通信有IP通信和socket通信这两种,我以前上学的时候以为socket就是IP:port,貌似这里的socket
不是指IP:port
2,我在mysql的启动脚本中看到这两个变量
pid_file
server_pid_file
据我观察,一个应该是客户端的pid文件路径,一个是server端的pid文件路径,但我启动mysql只能找到服务端的pid文件,那客户端的pid配置有意义么,可以不配置么。


   

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
9 [报告]
发表于 2015-06-26 09:46 |只看该作者
回复 8# 聆雨淋夜


1.socket我也讲解不来,网上看了一些也是一知半解,7楼说的socket分服务端和客户端,是指服务端启动的时候要建立一个socket文件,客户端连接的时候要通过一个socket文件,分的是他们两者调用的参数,而文件其实使用的是同一个。
2.echo "Manager PID file is $pid_file, Server PID file is $server_pid_file"
This is particularly important if you are running multiple instances of MySQL on the same server as the datadir is where the script looks for the pid file. Getting this wrong will easily lead to different instances of MySQL sharing the same pid file. The result will be that any mysql stop will stop the last instance startet, not the one intended!
line51:供用户设置pid_file变量的值(如果希望用mysqlmanager启动server,则设置这个变量),默认值为空
line52:供用户设置server_pid_file变量的值(如果希望用mysqld_safe启动server,则设置这个变量),默认值为空
以上信息网上收刮来的

默认以mysqlmanager启动,mysqld_safe是多实例时用到的。

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
10 [报告]
发表于 2015-06-26 10:28 |只看该作者
回复 7# hjfeng1988

我的理解是 你所谓的服务端socket与客户端socket 其实是一个东西
  1. [mysqld]

  2. port                = 3306

  3. socket                = /tmp/mysql.sock           
复制代码
这里是指定mysql服务器的socket位置,原先并没有这个文件,启动后就有了(有点像ip:port,服务启动后才会有端口)
  1. [client]

  2. socket=/opt/newdir/mysql.sock
复制代码
这里配置的socket是mysql客户端默认去那个地方“取”socket文件,(类比其他客户端要指定端口与服务器通信)


如果client不配置socket,mysql命令要么到默认地方能找到socket,要么必须要-S 指定socket文件位置才能连接mysql
以上的配置文件,server的socket与client的socket不在同一个地方,会使mysql -u -p 不能连接的,必须-S



   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP