前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于mysql.sock路径的问题 原

关于mysql.sock路径的问题 原

作者头像
阿dai学长
发布2019-04-03 11:16:21
7.8K0
发布2019-04-03 11:16:21
举报
文章被收录于专栏:阿dai_linux

mysql.sock路径问题

今天在LAMP环境使用WordPress搭建博客,在进行数据库的相关配置时遇到了mysql.sock寻址错误的问题,错误提示:“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)”意思是通过本地/var/lib/mysql/mysql.sock文件无法连接到MySQL服务。为了解决该问题,上网查询资料,所有回答都大同小异,最终自己总结了两种解决办法。

错误提示

代码语言:javascript
复制
[root@adailinux adaiblog.com ]# mysql -uroot -padailinux
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决思路

出现该问题后,首先根据错误提示我想到的是查看本地‘/var/lib/mysql/mysql.sock’文件:

代码语言:javascript
复制
[root@adailinux ]# ls /var/lib/mysql/mysql.sock
ls: 无法访问/var/lib/mysql/mysql.sock: 没有那个文件或目录

很显然,该文件不存在,于是想到在安装MySQL的时候自定义过socket文件保存路径,于是查看MySQL的配置文件:

代码语言:javascript
复制
[root@adailinux adaiblog.com]# vim /etc/my.cnf  

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock

根据该信息我检查/tmp/mysql.sock文件是否存在并查看其权限(排除因为权限问题所引起的该问题):

代码语言:javascript
复制
[root@adailinux adaiblog.com]# ls -l /tmp/mysql.sock 
srwxrwxrwx 1 mysql mysql 0 8月   6 20:57 /tmp/mysql.sock

如上所示:该文件为"777"权限,所以排除了因为文件权限导致该问题的可能。 综合上面的排查,大致可以确定导致该错误的原因是MySQL寻址没寻到/tmp/mysql.sock该文件,那么该如何解决该问题呢?

解决办法1:

既然是寻址问题,肯定是因为寻址路径原因, 再看错误提示“/var/lib/mysql/mysql.sock”,该路径就是在更改socket路径前的默认路径,文件不存在,说明该地址无效,那么只么MySQL能找道mysql.sock文件就可以啊,于是想到创建软链接:

代码语言:javascript
复制
[root@adailinux adaiblog.com]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

创建完成后重启MySQL服务,再次执行mysql命令,问题解决。

解决办法2:

通过上述分析可以确定MySQL配置文件中所指定的socket路径没有生效,自我感觉这才是问题的本质原因,于是查找资料,进行如下操作:

代码语言:javascript
复制
[root@adailinux adaiblog.com]# vim /etc/my.cnf

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock

[client]
socket=/tmp/mysql.sock

编辑MySQL配置文件后添加如上内容,重启MySQL服务,问题解决!


sever、client

至于mysql配置文件中[client]模块是什么,查到如下内容:

mysql-server 与 mysql-client是DBMS的两个面向不同操作对象的工具。 server是DBMS面向物理层次,包含存储数据的一系列机制、处理方法的集成; client是DBMS面向用户,提供一系列工具为用户所用,这些工具包括通常写的sql在内都要通过server的编译才能操作物理数据。

客户--client--server物理数据。

服务器--mysql-server是服务端。

前者是mysql核心程序,生成管理数据库实例,数据库实例任务调度线程之类,并提供相关接口供不同客户端调用,后者是操作数据库实例的工具。 操作mysql实例的客户端有很多,mysql-client只是其中一种,包括mysql,mysqldump,mysqlslap这些进行访问、备份、压力测试的工具。 mysql-server是服务端,也就是说,你服务端没安装,客户端没对象去操作,就好比,你买了个西瓜刀,但是却没买西瓜……切西瓜有很多工具,西瓜刀只是其中一种。 介绍几个主流mysql图形化客户端;navicat、phpmyadmin。

该部分内容小白并没有搞很明白,希网明白该部分知识的道友跟帖解释一下,尽量使用通俗易懂的语言!!!

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/08/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mysql.sock路径问题
    • 错误提示
      • 解决思路
        • 解决办法1:
          • 解决办法2:
            • sever、client
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档