MySQL: mysqld_safe funciona mas não consegue iniciar o serviço mysql, por quê?

2

Estou usando o MySQL 5.6.19 em uma máquina Centos 5.

Eu removi o diretório de dados e criei um novo com:

mysql_install_db --user=mysql --datadir=/var/lib/mysql

Quando eu corro:

mysqld_safe &

tudo funciona bem, mas quando tento iniciar o serviço, recebo o seguinte erro:

Starting MySQL. ERROR! The server quit without updating PID
file   (/var/lib/mysql/localhost.localdomain.pid).

e o log de erros mostra:

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

Todos os arquivos em /var/lib/mysql/ são de propriedade de mysql:mysql . Eu tentei colocar my.cnf em locais diferentes, ou seja, /etc/ /usr/ /var/lib/mysql/ .

Aqui está 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

Alguma ideia? Obrigado!

    
por user34814 20.07.2014 / 12:46

1 resposta

0

O problema estava relacionado ao SELinux. As permissões do SELinux nos diretórios recém-criados não foram configuradas corretamente.

Descobri isso observando /var/log/messages . Tinha entradas como:

kernel: type=1400 audit(...): avc:  denied ...

Para corrigir, usei:

semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"

restorecon -Rv /var/lib/mysql

O primeiro comando provavelmente não foi necessário, pois eu consegui

/usr/sbin/semanage: File context for /var/lib/mysql(/.*)? already defined

O segundo comando fez o truque.

    
por 22.07.2014 / 21:02

Tags