报错信息:
在使用 root 用户直接运行 #mysqld_safe
mysql无法启动报错如下
2018-03-02 16:29:06 27644 [Note]
180302 16:29:06 mysqld_safe mysqld from pid file /monitor/mysql/data/service2.pid ended2018-03-02 16:29:03 27644 [ERROR] Can't find messagefile '/monitor/mysql/share/mysql/errmsg.sys'
后来记起来这套环境是使用 mysql 2进制文件(mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz)直接安装的
直接在任意目录下运行mysqld_safe ,可能导致运行mysqld的环境变量异常
[root@service2 mysql]# which mysqld_safe
/usr/bin/mysqld_safe
/monitor/mysql/bin/mysqld_safe --------这才是我真正的mysql 的basedir 目录
/usr/bin/mysqld_safe -----该目录下的mysql 环境为原来系统默认的mysql 环境
[root@service2 mysql]# rpm -qa |grep mysql
zabbix-web-mysql-3.0.1-1.el7.noarch
php-mysql-5.4.16-36.el7_1.x86_64
zabbix-server-mysql-3.0.1-1.el7.x86_64
所以当root 在任意目录下运行 mysqld_safe 命令时,读取 /etc/my.cnf 文件
####################
[mysqld]
innodb_buffer_pool_size = 300M
basedir = /monitor/mysql/
datadir = /monitor/mysql/data
#################
读取到basedir 和系统默认预安装的mysql 默认运行环境不同,导致无法正确读取language 变量
正确解决方法:
在basedir = /monitor/mysql/ 下 运行 ./bin/mysqld_safe 即可正常启动mysql 数据库
[root@service2 mysql]# ll
total 56
-rw-r--r-- 1 mysql mysql 17987 May 17 2016 COPYING
-rw-r--r-- 1 mysql mysql 2496 May 17 2016 README
drwxr-xr-x 2 mysql mysql 4096 Feb 28 18:42 bin
drwxr-xr-x 22 mysql mysql 4096 Mar 2 16:44 data
drwxr-xr-x 2 mysql mysql 52 Nov 2 2016 docs
drwxr-xr-x 3 mysql mysql 4096 Nov 2 2016 include
drwxr-xr-x 3 mysql mysql 4096 Nov 2 2016 lib
drwxr-xr-x 4 mysql mysql 28 Nov 2 2016 man
-rw-r--r-- 1 root root 943 Nov 2 2016 my.cnf
drwxr-xr-x 10 mysql mysql 4096 Nov 2 2016 mysql-test
drwxr-xr-x 2 mysql mysql 29 Nov 2 2016 scripts
drwxr-xr-x 28 mysql mysql 4096 Nov 2 2016 share
drwxr-xr-x 4 mysql mysql 4096 Nov 2 2016 sql-bench
drwxr-xr-x 2 mysql mysql 130 Nov 2 2016 support-files
[root@service2 mysql]# pwd
/monitor/mysql