admin管理员组文章数量:1558886
当我们系统环境中的Mysql是采用源码安装时,在启动MySQL时通常会遇到如下问题:
[root@server1 bin]# ./mysql -u root -p
Enter password:
报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
报错原因:没有生成Mysql的sock链接文件
首先需要明白mysql.sock这个文件的作用:
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。
如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件
如果你因为丢失 套接字文件 而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
起初采用方法:
1、通过find / -name mysql.sock
2、查询到结果,做一个软链接到/tmp目录下即可解决问题
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
但是经过测试,发现还是不行
然后发现原来/etc/init.d/下没有mysqld服务,可能是之前执行某些任务时,将该服务删除了。
最终解决方案:
重新配置mysqld服务。
步骤如下:
1、cd usr/local/mysql/
2、/bin/cp support-files/my-small.cnf /etc/my.cnf //建立配置文件
3、useradd -s /sbin/nologin -M mysql // 创建mysql分组,-M不创建主目录,-s不允许登录
4、chown -R mysql.mysql data // 改变目录的属主和属组
5、/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql //利用mysql的身份去安装mysql数据库并初始化数据库
显示如此,则初始化数据库成功!
6、cp support-files/mysql.server /etc/init.d/mysqld // 将mysqld服务的启动脚本复制到/etc/init.d目录下
7、chmod +x /etc/init.d/mysqld // 为目录添加执行权限
8、/etc/init.d/mysqld start // 启动mysqld的服务
9、/etc/init.d/mysqld status // 查看mysqld服务的状态
显示Starting MySQL SUCCESS! 则启动成功
10、可通过ps -ef | grep mysqld 查看进程是否启动
11、然后启动mysqld服务
./mysql -u root -p
OK!
问题解决
版权声明:本文标题:MySQL启动常见错误:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘tmpmysql.sock‘ 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725805904a1044025.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论