我在 Centos 5 机器上使用 MySQL 5.6.19。
我删除了数据目录并创建了一个新的:
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
有什么想法吗?谢谢!
答案1
该问题与 SELinux 有关。新创建目录的 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
第二条命令起了作用。