centos 7 登陆 mysql 报错:Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (111)

报错情况

        在 centos 7 机器上使用源码安装完 mysql 8.0.31 后,输入初始密码,报如下错误:

        根据该错误进入到 /usr/local/mysql3306/data/ 目录下(/usr/local/mysql3306/ 目录为 mysql 8.0.31的安装目录),发现确实没有 mysql.sock 文件, /usr/local/mysql3306/data/ 目录内容如下:

网上搜索情况 

        根据该报错问题,在网上搜索了一通,大多数解决方案指向:需要对 mysql.sock 进行软连接;

软连接

ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock

说明:

       /usr/local/mysql3306/data/mysql.sock 为 mysql3306 安装目录;

       /tmp/mysql.sock 系统文件;

软连接结果

结果显示无法创建软连接,结果如下所示:

终无果!!! 

最终解决方案

        导致输入初始密码后报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 的原因有很多;

        但大都一般是因为在安装 mysql 过程中,漏掉了一些关键步骤!

我遇到的情况

        我使用源码的方式在 centos 7 上部署 mysql 8.0.31,在安装完成并输入初始密码后,报如上错误!!!

        经过仔细审视了一边,最终发现:忘记创建 用户名和组 

      (你们出现这种情况,可能是忘记创建用户名和组,也有可能是漏掉了一些别的重要步骤,所以可考虑审查一遍安装流程!)

解决办法

 1、无需删除已经安装的 mysql,直接在现有基础上建立用户民和组,创建命令如下:

# 参数说明:-M 不创建家目录 -s 指定 -r 创建系统账户

groupadd mysql3306 
useradd -r -g mysql3306 -M -s /bin/false mysql3306 

 
# 因为我在一台机器上部署了多个 mysql 
# 为了加以区分,所以创建的用户名和组都以端口号命名,如: mysql3306 

 2、然后清空 /usr/local/mysql3306/data/ 目录下的所有内容,清空命令如下;

cd /usr/local/mysql3306/data/
rm -rf *

需要注意的是:在重新初始化前,必须清空 mysql 安装目录下的 ./data 文件夹,否则会导致重新初始化失败! 

3、重新初始化,初始化命令如下:

# --defaults-file=/etc/my3306.cnf 中的 /etc/my3306.cnf 为自己创建的配置文件名称和路径
# --user=mysql3306 中的 mysql3306 为用户名,需要和上述创建的保持一致
# --port=3306 中的 3306 为端口号,该命令是初始化指定端口号的 mysql

bin/mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql3306 --port=3306

4、初始化完成后,启动 mysql 并输入初始密码即可,启动 mysql 命令如下:

# 启动指定端口号的 mysql

bin/mysqld_safe --user=mysql3306 --port=3306 &

bin/mysql -u root -p -P 3306

 执行结果如下所示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库内核

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值