一键LNMP脚本安装后可能出现mysql无法启动处理

lnmp现在已经是标配了,不过这个东东手动部署的话还是有些麻烦的,配置文件太多,因此现在的方式很多是使用的一键脚本,这样会方便很多,不过相对的,如果有问题的话,排查起来也会稍显麻烦,比如最近就发现一个问题。

lnmp安装完成后,一切看来都很正常,很惬意,然后用apt-get安装freeradius,接着问题来了,mysql先是登录不了,无论是用phpmyadmin还是直接从终端用mysql -u root -p,都无法进入,然后重启mysql服务,问题来了,报错了,如图:QQ图片20160216124020

根据这个报错,我去提示的路径下找了,并没有这个pid文件,也就是没有生成,然后去看my.cnf文件,查看mysql的error日志在哪里,然后看日志,发现有这样的提示:

问了下度娘,说要重置一下mysql,

注意:/usr/local/mysql/bin/mysql_install_db –user=mysql相对于我来说,mysql_install_db文件在/usr/local/mysql/bin/下。

请使用find / -name mysql_install_db找出文件的路径。

但是很有可能报错,找不到bin目录中的my_print_defaults
错误信息:

解决方法:

操作后发现又有个报错……

QQ图片20160216124034

继续度娘,发现是说有个语言的路径没有设置,根据解释“加入language配置项,由于使用二进制分发包进行安装的,而默认的情况下,mysql会到/usr/local/mysql/share/english下查找该文件”,于是更改my.cnf,在[mysqld]下添加language  = /usr/local/mysql3306/share/english

QQ图片20160216124040

启动正常后,如果登录mysql的时候报错

首先看一下权限,

/usr/local/mysql 目录的权限不对:

再看my.cnf中设置的路径

原因1-配置文件错误:
检查etc下面的my.cnf如下内容:

原因2-启动文件错误:
需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,
其中datadir= ? 一行检查下!

原因3-前提是你在使用php连接时候报错!
在/etc/php.ini修改mysql.default_socket的值设置为:

回到终点设置个连接:

(在/etc/php.ini中mysql.default_socket这个文件中,关于mysql.default_socket的值的说明是这样的,
;Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.
这个值一开始是空的,也就是说,如果我们不主动去修改的话,php将会使用内建在mysql中的默认值)

补充一下,按照上面的排查方式还是有问题的话,注意用find命令查找一下my.cnf这个文件

如果有很多的话,mysql会按顺序读取配置文件/etc/my.conf,/etc/mysql/my.conf,/usr/etc/my.con,~/.my.conf

lnmp

 

/etc/my.conf中的

/etc/mysql/my.conf中socket=/var/run/mysqld/mysqld.sock 配置重复,导致/etc/mysql/my.conf中的[client]覆盖了/etc/my.conf中的[client]设置,所以连接不正确,就会出现这个错误
最简单的办法是删除这个文件
mv /etc/mysql/my.conf /etc/mysql/mysql.conf_backup

完成后重启mysql服务即可正常。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注