数据库出问题,网站就很尴尬了,前段时间就遇到了两个数据库上的问题,来看一下

朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下

第一个问题

第一个问题是 phpMyAdmin 报错:



mysqli_real_connect(): (HY000/2002): No such file or directory



解决方法把 phpMyAdmin 目录中的配置文件做以下修改:

/www/server/phpmyadmin/phpmyadmin_XXXXXXXX/libraries目录下

config.default.php文件中的$cfg['Servers'][$i]['host'] = 'localhost';,将localhost改为127.0.0.1

同理/www/server/phpmyadmin/phpmyadmin_XXXXXXXX目录下

config.inc.php文件中$cfg['Servers'][$i]['host'] = 'localhost';,将localhost改为127.0.0.1

刷新网页就可以了

第二个问题

Mysql 无法正常启动,也没有报错,我去查看了一下日志,也没看出来个什么名堂,只能一步一步的去检查了

点到了安全,发现没有放行 Mysql 的 3306 端口,我给添加上了

然后启动还是失败,继续检查,要来了 SSH 信息,连接上服务器

使用命令检查了一下是否是磁盘空间不足、内存不足导致的 mysql 服务无法正常启动

命令如下:



df -h #检查是否磁盘空间不足导致mysql服务无法正常启动
free #检查是否内存不足导致mysql服务无法正常启动



一切正常,和面板显示的没有多大出入

然后去查看了一下 data 目录(数据存放目录) Mysql 目录(数据库目录)用户是否为 mysql



ll /www/server/



发现 Mysql 目录确实不是 mysql 的用户,给他改回去




宝塔面板 Redis管理 宝塔面板 mysql_宝塔面板 Redis管理


使用命令:


chown -R mysql:mysql /www/server/data #修改data目录
chown -R mysql:mysql /www/server/mysql #修改mysql目录


再检查了一下配置文件


vi /etc/my.cnf


也是正常的,启动依旧失败

无解了,用一下官方提供的脚本检查出错


wget -O sql-repair.sh http://download.bt.cn/install/sql-repair.sh && sh sql-repair.sh


输出一大串错误,mysql 无法正常启动,请将以上错误信息截图发至论坛寻求帮助


宝塔面板 Redis管理 宝塔面板 mysql_mysql 重启_02


仔细看一下报错信息,端口占用,哔了哈士奇

使用命令查看端口 3306


netstat -pan | grep 3306

tcp   0   0   127.0.0.1:53958   127.0.0.1:3306   LISTEN   1653/xxx


发现果然有占用,查看一下它的 pid (pid:进程号),结束掉它,不能直接禁用,我们还要用 3306 呢,这里的响应我忘了保存,反正就是有占用,我加上这个响应是为啥呢,为了告诉你通过 pid 结束这个进程

正常应该是这样子的:


tcp6   0   0 :::3306   :::*   LISTEN   6701/mysqld


这个 1653 就是这个进程的 pid,通过命令


kill -9 1653


关掉对应的应用程序,则端口就自然关闭了,也就不存在端口占用了

没有报错的话就尝试启动下 Mysql,发现正常启动了,bingo~

Mysql 挂的原因很大程度是重启服务器所致,没事不要重启服务器,如果修改过配置文件等,重载服务即可无需重启

确实需要重启请使用面板中的安全重启,切勿使用 reboot 命令