当我们系统环境中的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 sock