启动数据库出现错误,错误信息是:
[ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys' root@debian:/usr/local# /etc/init.d/mysql3306 start Starting MySQL
...The server quit without updating PID file (/home/www/mysql/m3306/mysql3306.pid). ... failed! root@debian:/usr/local/mysql3306# cat /home/www/mysql/m3306/mysql3306.err 120102 14:11:58 mysqld_safe Starting mysqld daemon with databases from /home/www/mysql/m3306 120102 14:11:58 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys' 120102 14:11:58 [Note] Plugin 'FEDERATED' is disabled. 120102 14:11:58 InnoDB: The InnoDB memory heap is disabled 120102 14:11:58 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120102 14:11:58 InnoDB: Compressed tables use zlib 1.2.3 120102 14:11:58 InnoDB: Using Linux native AIO 120102 14:11:58 InnoDB: Initializing buffer pool, size = 128.0M 120102 14:11:58 InnoDB: Completed initialization of buffer pool 120102 14:11:58 InnoDB: highest supported file format is Barracuda. 120102 14:11:58 InnoDB: Waiting for the background threads to start 120102 14:11:59 InnoDB: 1.1.8 started; log sequence number 1595675 120102 14:11:59 [ERROR] Aborting 120102 14:11:59 InnoDB: Starting shutdown... 120102 14:12:00 InnoDB: Shutdown completed; log sequence number 1595675 120102 14:12:00 [Note] 120102 14:12:00 mysqld_safe mysqld from pid file /home/www/mysql/m3306/mysql3306.pid ended
解决方法是:
root@debian:/usr/local# vi mysql3306/my.cnf
加入language配置项,由于我是使用二进制分发包进行安装的,而默认的情况下,mysql会到/usr/local/mysql/share/english下查找该文件,
但由于我的mysql安装路径 为/usr/local/mysql3306/,所以如下: [mysqld] pid-file = /home/www/mysql/m3306/mysql3306.pid log-error = /home/www/mysql/m3306/mysql3306.err language = /usr/local/mysql3306/share/english #此处为language配置项 port = 3306 socket = /tmp/mysql3306.sock basedir = /usr/local/mysql3306 datadir = /home/www/mysql/m3306
重新启动:
root@debian:/usr/local# /etc/init.d/mysql3306 start Starting MySQL ...
已成功启动。
查看更多关于启动mysql出错:Cant find messagefile /usr/share/mysql/e的详细内容...