执行service mysql start时可能会出现如下问题:
1. 出现mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log'字样
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
解决办法:
问题中可以看到与mysqld_safe的配置中的/var/log/mariadb/mariadb.log文件有关,我们检查一下本地是否有这个mariadb.log,如下图:
图中可见,/var/log目录中,并没有mariadb目录,此时应该创建该目录并赋予权限,代码如下:
# 创建目录及文件
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
# 授权
chown -R mysql:mysql /var/log/mariadb/
再次执行 service mysql start 即可。
2. 出现mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.时,参照如下处理:
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
从报错信息看是socket文件不存在,我们检查一下服务器的/var/lib/mysql中是否真的有这个文件,如图:
从图中看到,这个错误其实在/var/lib中没有mysql目录导致的,此时我们进行对应的目录创建及授权操作即可:
# 创建目录及文件
mkdir /var/lib/mysql
# 授权
chown -R mysql:mysql /var/lib/mysql/
再次执行 service mysql start 即可。
3. 出现The server quit without updating PID file (/data/mysql/mysql.pid).时,可能是mysql已经执行了,执行如下命令即可杀掉进程
ps -ef | grep mysqld | awk -F " " '{print $2}' | xargs -I {} kill {}
当执行mysql -u root -p时,可能会出现“-bash: mysql: 未找到命令”这个错误信息,解决办法如下:
#执行代码查看打印的结果中是否包含mysql:
echo $PATH
如上图所示,确实不包含mysql,则我们对/etc/profile文件的export PATH 中增加mysql的环境配置即可:
vim /etc/profile
在文件中找到export PATH=开头的语句,若没有该语句则直接复制如下语句放在文件最后\
export PATH=/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/bin:/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/lib:$PATH
若文件中有export PATH= 开头的语句,则在语句最后追加如下内容:
:/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/bin:/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/lib:$PATH
例如:我的/etc/profile文件中有export PATH=开头的语句,内容如下:
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
追加内容后,export PATH=开头的语句内容如下:
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/bin:/usr/local/mysql/mysql-5.7.26-linux-glibc2.12-x86_64/lib:$PATH
内容修改完成后,执行如下代码重新加载profile文件
source /etc/profile
再次执行mysql -u root -p 发现问题已经解决。