1、报错信息

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

使用 systemctl status mariadb.service

mysql repair故障 mysql故障排查_mysql运维常见故障

journalctl -xe

mysql repair故障 mysql故障排查_php_02

根据如上Mariadb报错的信息,表示Mariadb数据库服务启动时,要将启动信息、日常的信息写入日志目录中的日志文件中,而错误显示该日志目录不存在:/var/log/mariadb/,解决方法:

检测一下该目录/var/log/mariadb/是否存在;

如果目录不存在,创建目录即可,并且授权访问;

mkdir -p /var/log/mariadb/

chown -R mysql.mysql /var/log/mariadb/

chmod -R o+w /var/log/mariadb/

mysql repair故障 mysql故障排查_nginx_03

根据如上的排错方法,数据库服务还是无法启动,报错信息如下:

mysql repair故障 mysql故障排查_php_04

根据如上Mariadb报错的信息,表示Mariadb数据库服务启动时,会加载Mariadb数据目录中的基础数据、表信息,错误显示数据库服务没有初始化,初始化主要是为了装载基础数据、创建用户、权限信息,定义数据库结构等,确保数据库初始化的时候,数据目录是空的,防止将往前的数据给覆盖。

/usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql/ --force(强制初始化);

ll /var/lib/mysql/

chown -R mysql /var/lib/mysql/

当我们查看软件服务启动日志、内核日志,均无法查找问题的原因时,记得查看软件服务的自身应用程序日志。应用程序的日志路径可以通过配置文件查找,/etc/my.cnf查看。

#静态查看日志文件末尾30行的日志信息;

tail -n 30 /var/log/mariadb/mariadb.log

#实时查看日志文件末尾30行的日志信息;tail -fn 30 /var/log/mariadb/mariadb.log (背锅侠专用)

mysql repair故障 mysql故障排查_mysql_05

根据如上的错误提示,表示启动Mariadb数据库服务时,会将启动的进程ID号写入至pid文件中,错误显示该pid文件无法写入,该文件或者目录不存在。

解决方法:

检测该文件和目录是否存在,不存在创建并且授权mysql用户访问;

mkdir -p /var/run/mariadb/

chown -R mysql.mysql /var/run/mariadb/

mysql repair故障 mysql故障排查_mysql_06

使用mysql命令无法进入MYSQL数据库中,报错信息如下:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

#根据如上的错误的提示,表示不能连接MYSQL数据库服务,通过Socket文件:/var/lib/mysql/mysql.sock。

MYSQL数据库服务属于C/S模式(Client和Server),启动MYSQLD属于服务端,默认执行mysql命令回车(客户端工具|本地访问|远程访问|Navicat)。

MYSQL数据库连接访问,有两种方式,一种是通过TCP/IP远程连接方式,一种是通过本地socket文件方式,如上错误提示是使用的本地socket文件,可以通过my.cnf查看socket文件路径或者ps -ef|grep mysql查看。

ps -ef|grep mysql

cat /etc/my.cnf|grep socket

mysql --socket=/tmp/mysql.sock

ln -s  /var/lib/mysql/mysql.sock /tmp/

mysql repair故障 mysql故障排查_nginx_07

Linux运维常见故障关键词(30+)
Error|ERROR|error(错误);
Failed|fail(失败);
Warning|warn(警告);
Deny|denied(拒绝);
Refused|refuse(拒绝);
Exit|exit(退出);
No such|No file|NOT(没有);
Not found|No exist(没有找到|不存在);
False|false(错误);
Can’t|Can not(不能)|not initialized(没有初始化);
Command not found| C CC not found(命令没有发现)
Cannot create(不能创建);
Permission denied(没有权限);
Can't connect(不能连接);

基于YUM二进制LNP+MYSQL主从实战

准备3台服务器,其中一台作为Nginx WEB服务器+PHP-FPM(FastCGI),另外两台作为MYSQL主从服务器,服务器IP信息:

10.10.10.140-Linux+Nginx+PHP

10.10.10.141-MYSQL Master;

10.10.10.142-MYSQL Slave;

mysql repair故障 mysql故障排查_php_08

配置LNP,Nginx WEB服务器+PHP-FPM(FastCGI),配置方法如下:

安装LNP服务;

yum install nginx php php-devel php-mysql php-fpm -y
Nginx默认发布目录:/usr/share/nginx/html/;
Nginx配置文件目录:/etc/nginx/
/usr/share/nginx/html/,发布目录创建index.php测试页面;
vim index.php
phpinfo();
?>

mysql repair故障 mysql故障排查_mysql_09

配置LNP服务整合;

cd /etc/nginx
cp nginx.conf.default nginx.conf
添加PHP FastCGI 9000信息内容,其他配置信息不动;
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;}

mysql repair故障 mysql故障排查_mysql repair故障_10

启动Nginx、PHP-FPM服务即可;

service php-fpm restart
service nginx restart

mysql repair故障 mysql故障排查_mysql_11

mysql repair故障 mysql故障排查_mysql运维常见故障_12