mysql启动常见错误
当我们系统环境中的mysql是采用源码安装时,在启动mysql时通常会遇到如下问题:
[root@server1 bin]# ./mysql -u root -penter 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!问题解决
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论