Não é possível reiniciar o serviço mysql depois de obter o Error 2002 Não é possível conectar-se ao servidor mysql local

2

A partir de ontem, estou recebendo este erro ao conectar ao mysql:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Eu não toquei na minha configuração por ~ 1 mês, então não acredito que ela tenha sido influenciada por alterações que eu tentei fazer na configuração. Quando tento reiniciar o serviço mysql com

service mysqld restart

Eu recebo este erro:

Stopping mysqld:                                           [  OK  ]
touch: cannot touch ‘/var/log/mysqld.log’: Permission denied
chown: changing ownership of ‘/var/log/mysqld.log’: Operation not permitted
chmod: changing permissions of ‘/var/log/mysqld.log’: Operation not permitted
chown: changing ownership of ‘/var/lib/mysql’: Operation not permitted
chmod: changing permissions of ‘/var/lib/mysql’: Operation not permitted
MySQL Daemon failed to start.

E se eu tentar:

sudo service mysqld restart

Acabei de receber:

Stopping mysqld:                                           [  OK  ]
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

Eu acho que é um problema de permissões com base no que eu li em outros threads de falha de servidor sobre o mesmo erro, mas eu ainda estou perplexo porque eu deveria ter permissões para executar arquivos nesse diretório:

drwxr-xr-x 6 mysql mysql 4096 Jun 21 16:42 /var/lib/mysql

Atualização: registra abaixo. Parece um problema de memória, mas não sei como abordar:

140618 20:17:46 mysqld_safe Number of processes running now: 0
140618 20:17:46 mysqld_safe mysqld restarted
140618 20:17:47 [Note] Plugin 'FEDERATED' is disabled.
140618 20:17:47 InnoDB: The InnoDB memory heap is disabled
140618 20:17:47 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140618 20:17:47 InnoDB: Compressed tables use zlib 1.2.7
140618 20:17:47 InnoDB: Using Linux native AIO
140618 20:17:47 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
140618 20:17:47 InnoDB: Completed initialization of buffer pool
140618 20:17:47 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140618 20:17:47 [ERROR] Plugin 'InnoDB' init function returned error.
140618 20:17:47 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140618 20:17:47 [ERROR] Unknown/unsupported storage engine: InnoDB
140618 20:17:47 [ERROR] Aborting

140618 20:17:47 [Note] /usr/libexec/mysqld: Shutdown complete

140618 20:17:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
140621 16:42:49 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140621 16:42:49 [Note] Plugin 'FEDERATED' is disabled.
140621 16:42:49 InnoDB: The InnoDB memory heap is disabled
140621 16:42:49 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140621 16:42:49 InnoDB: Compressed tables use zlib 1.2.7
140621 16:42:49 InnoDB: Using Linux native AIO
140621 16:42:50 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
140621 16:42:50 InnoDB: Completed initialization of buffer pool
140621 16:42:50 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140621 16:42:50 [ERROR] Plugin 'InnoDB' init function returned error.
140621 16:42:50 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140621 16:42:50 [ERROR] Unknown/unsupported storage engine: InnoDB
140621 16:42:50 [ERROR] Aborting

140621 16:42:50 [Note] /usr/libexec/mysqld: Shutdown complete

140621 16:42:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

UPDATE: Encontrou a resposta aqui que estava configurando um arquivo de troca. Os detalhes completos que eu segui sobre como fazer isso podem ser encontrados aqui: link

    
por john k 21.06.2014 / 19:55

1 resposta

1

Você precisa ter certeza de que todos os arquivos mysql são de propriedade do usuário mysql. Verifique se os arquivos de log mysql são de propriedade do usuário MySQL.

ls -l /var/log/mysql*

Se não definir o proprietário adequado:

chown mysql:mysql /var/log/mysql....

Faça o mesmo para todos os diretórios listados em seu my.cnf:

root# grep mysql /etc/mysql/my.cnf
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /data/mysql
log_bin=/data/mysql/binlogs/mysql-bin.log
slow_query_log_file=/var/log/mysql_slow_query.log
log-error=/var/log/mysql_error.log
innodb_data_home_dir = /data/mysql

Para diretórios, use chown recursivo:

chown mysql:mysql -R /data/mysql
    
por 22.06.2014 / 00:01

Tags