我在Centos 5机器上使用MySQL 5.6.19。
我删除了数据目录,并创build一个新的:
mysql_install_db --user=mysql --datadir=/var/lib/mysql
当我运行:
mysqld_safe &
所有工作正常,但是当我尝试启动服务时,我得到以下错误:
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
并且错误日志显示:
140720 07:30:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140720 07:30:19 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended
/var/lib/mysql/中的所有文件都由mysql:mysql拥有。 我尝试把my.cnf放在不同的位置,即/etc/ /usr/ /var/lib/mysql/ 。
这是my.cnf:
[mysqld] innodb_strict_mode = ON innodb_buffer_pool_size = 2G innodb_file_per_table = ON innodb_file_format = Barracuda innodb_compression_level = 9 innodb_flush_method = O_DIRECT innodb_log_files_in_group = 2 innodb_log_file_size = 1G innodb_log_buffer_size = 128M innodb_flush_log_at_trx_commit = 1 innodb_thread_concurrency = 2 max_allowed_packet = 1G tmp_table_size = 1G max_heap_table_size = 1G query_cache_type = 0 query_cache_size = 0 log_output = TABLE slow_query_log = ON log_error = mysql-error.log skip-name-resolve
有任何想法吗? 谢谢!
这个问题与SELinux有关。 新创build的目录的SELinux权限设置不正确。
我发现通过查看/var/log/messages 。 它有像这样的条目:
kernel: type=1400 audit(...): avc: denied ...
为了解决它,我用:
semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?" restorecon -Rv /var/lib/mysql
第一个命令可能没有必要,因为我得到了
/usr/sbin/semanage: File context for /var/lib/mysql(/.*)? already defined
第二个命令做到了。