Centos7安装MySQL8报错ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket

一、问题出现背景

        我是跟着http://t.csdnimg.cn/17jti这个博主的这篇帖子按照步骤安装的,并进行了数据库密码的设置和允许用户名为root用户不限ip登录数据库。然后后续设置开机MySQL自启动跟着这个博主的这个帖子http://t.csdnimg.cn/kxGTv完成的。但是当我重启虚拟机之后,发现MySQL服务消失了。

二、问题解决办法

        直接原因我没有探究究竟是哪个。以下都是我做的尝试。

        2.1 感觉是最关键的步骤

        最开始那个博主的安装帖子里,他把配置文件的my.cnf中的socket放在了/tmp目录下,所以在我重启后,随着/tmp目录下的该文件消失,MySQL就启动不了了。(后续经过验证由安全模式下启动可以重启,mysql_safe)。它提示找不到/usr/local/mysql...  最开始我的安装目录是自己建立的,我放在了/app/mysql/目录下,顺着这条错误提示,我就在想是不是Centos7里默认mysql的安装位置就在/usr/local中,就是我没有把mysql放在他认为的目录里,所以导致了报错,于是我把/app/mysql移动到了/usr/local目录下,然后重新修改配置文件,重新初始化数据库,不管是安全模式命令mysqld_safe还是support-files/mysql.server start 启动都能运行MySQL了,而且关机后重启,MySQL服务也自启动了。

        2.2 做出的其他尝试

        最初肯定是以为在配置文件中把socket目录修改然后初始化就行了,因为之前认为的原因是/tmp目录下保存的socket信息被自动删除了。但是我初始化后没有启动mysql服务,即没有用安全模式启动MySQL服务,直接想进入数据库,结果自然是不行的。但是有一次这样启动后发现,我自己设置的socket保存位置在重启虚拟机后消失不见了。也就是说重启一次机器,就得重新初始化,然后重新用安全模式启动MySQL服务。这未免有点太费事儿了,与其这样不如直接按照上面的错误提示放在/usr/local目录下。

        还有在每次我进行尝试出错地方的时候,我都把添加的MySQL自启动服务都关掉了,我是控制了一下变量,所以问题是不是出在这里,我也不能断定,但是mysql换了位置,之前的快捷绑定 mysql_server启动方式应该也是不能用的,所以保险起见还是先删除了这个服务,然后再从启动服务,绑定自启动来一遍。

chkconfig --remove mysqld   # 解绑自启动服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  # 重新绑定
chmod +x /etc/init.d/mysqld # 赋予可执行权限
chkconfig --add mysqld # 加入自启动服务
ps -aux|grep mysqld # 开机查看自启动服务


三、有趣的地方

        我以为两种启动方式会有所不同,奇怪为什么要设计mysqld_safe和mysql_server 两种启动方式,后续经过查阅资料得知,似乎mysql_server启动时自己调用了mysqld_safe启动。所以没区别。但是再新启动服务和关机后自启动服务,他们之间的进程是有一点差别的。如下如所示。

 这个是刚用安全模式启动的mysql进程查询 

这个是重启虚拟机开机自启动的进程查询

        我猜是自启动会搜寻上一次启动的信息,所以会有所不同。 不管怎么说,这个问题是解决了,但是也花了一下午的时间,排查错误真的耗时。

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
误代码2002 (HY000): 无法通过套接字 '/tmp/mysql' 连接到本地服务器。 这个误通常在MySQL数据库服务器无法通过指定的套接字连接到本地服务器时发生。套接字是一种用于在不同进程之间传输数据的通信机制。 造成这个误的原因可能有以下几种: 1. MySQL服务器未启动:确保MySQL服务器正在运行。可以通过在终端中运行"sudo service mysql start"(Ubuntu/Debian)或"sudo systemctl start mysql"(Fedora/CentOS)来启动MySQL服务器。 2. MySQL服务器配置误:检查MySQL服务器配置文件(通常位于/etc/mysql/my.cnf或/etc/my.cnf),确保其中指定的套接字路径与实际路径一致。如果路径不正确,可以通过编辑配置文件来更正。 3. MySQL套接字文件丢失或损坏:检查指定套接字路径下是否存在该套接字文件。如果套接字文件不存在或损坏,可以尝试重启MySQL服务器来重新创建套接字文件。 4. 权限问题:确保MySQL服务器启动的用户对指定的套接字文件有读写权限。可以使用chmod命令来更改套接字文件的权限。 5. 其它进程占用套接字:查看系统中是否有其它进程占用了指定的套接字文件。可以使用lsof命令来列出正在使用指定套接字文件的进程,然后结束或重启相应的进程。 总之,解决这个误需要仔细检查MySQL服务器的配置和状态,并确保套接字文件的存在和权限设置正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值