falha no início do servidor mysql

28

Estou executando o servidor ubuntu. Quando tentei entrar no mysql (que estava em execução), recebi o seguinte erro

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

Mas o arquivo mysqld.sock não existe dentro da /var/run/mysqldpasta. Ao executar o ps aux | grep mysqlcomando, percebi que o servidor mysql não estava em execução.

Eu tentei reiniciar o servidor mysql usando

service mysql start
service mysql restart
/etc/init.d/mysql start

Mas, o processo de inicialização falhou nos três casos. /var/log/mysql/mysql.loge os /var/log/mysql/mysql.errarquivos estão vazios.

Mas /var/log/error.logmostra as seguintes informações:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
ananth
fonte
veja se isso ajuda: serverfault.com/questions/104014/…
Rinzwind 25/04
1
Qual é a saída de ls /var/lib/mysql/ib_logfile*?
Jobin
ls: não pode acessar / var / lib / mysql / ib_logfile *: Nenhum tal lima ou diretório
ananth
1
Seu diretório / var / lib / mysql pode ser gravado no mysql?
25414 Jos
1
Eu sou um novato no linux .. Alterei as permissões do / var / lib / mysql usando o chmod 777 . Você pode me sugerir como verificar se esse não é o caminho certo?
perfil completo

Respostas:

28

Abra um terminal ( Ctrl+ Alt+ t) e faça o seguinte:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

e comente a linha record_buffer=64Mem /etc/mysql/my.cnf [1]

e, em seguida, reinicie o msyql usando:

sudo service mysql restart

(Fonte)

jobin
fonte
1
Corri os comandos que você mentioned..On executar serviço sudo mysql restart, ele deu uma parada mensagem: exemplo Desconhecido e desembolsar prompt de não aparecer (restart ainda está em execução a partir últimos 50 minutos)
ananth
1
Além disso, agora o log de erros diz: -140425 15:09:11 InnoDB: o formato de arquivo mais alto suportado é o Barracuda. 140425 15:09:12 InnoDB: aguardando o início dos threads em segundo plano 140425 15:09:13 InnoDB: 5.5.37 iniciado; número de sequência do log 940942258188 140425 15:09:13 [ERRO] / usr / sbin / mysqld: variável desconhecida 'record_buffer = 64M' 140425 15:09:13 [ERRO] Interrompendo 140425 15:09:13 InnoDB: Iniciando o desligamento ... 140425 15:09:14 InnoDB: Encerramento concluído; número de sequência de registo 940942258188 140425 15:09:14 [Nota] / usr / sbin / mysqld: desligamento completo
ananth
Não ... eu fiz o serviço sudo mysql restart.
perfil completo
Você pode tentar fazer sudo service mysql start?
Jobin
Devo matar o processo de reinicialização do mysql que está sendo executado? Isso causará algum problema?
perfil completo
9

Isso resolveu meu problema:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

user520064
fonte
1
depois de aplicar essas etapas, meu banco de dados é excluído. Agora o que vou fazer?
Amit Yadav
7

Resolvi o problema da seguinte maneira:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

Em outro contexto, eu o enfrentei porque o daemon mysql falhou ao iniciar. Portanto, inicie o daemon com o comando - mysqld starte tente iniciar o serviço.

Sudheesh.MS
fonte
2

Eu tive a mesma mensagem de erro e o mesmo vazio nos arquivos de log. No meu arquivo de configuração (my.cnf), especifiquei que queria usar tabelas myisam, adicionando esta linha na seção [mysqld]:

default-table-type = myisam

Após a atualização do mysql, parece que isso faz com que o mysql não seja iniciado. Eu mudei isso para:

default-storage-engine = myisam

e agora tudo funciona bem.

Lars Olav Tveito
fonte
1

Aumentar a RAM disponível adicionando novo espaço de troca também pode ajudar. Passos estão aqui

Certifique-se de criar / trocar o arquivo com tamanho menor que o espaço disponível mostrado por

df -h

Por exemplo, para mim, a saída de df- h foi:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Então eu criei usando 2 G

sudo fallocate -l 2G /swapfile

E então apenas inicie o serviço

sudo /etc/init.d/mysql restart

Espero que isto ajude. Muito bem sucedida.

Vivek
fonte
1

Minha solução:

Verifique se em todos os /etc/rc1.d ... /etc/rc5.d o script mysql começa com S (Ex S10mysql) e não como K AS K10mysql.

Explicação: O prefixo K é carregado com stop, tipo de serviço de interrupção; e o prefixo S começa com o parâmetro start.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5
Sergio Abreu
fonte
1

No meu caso, era uma questão de espaço. Verifique se você tem espaço suficiente.

de /var/log/mysql/error.logeu recebi algumas dicas de duas linhas:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Pude ver que é uma questão de espaço.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

A partir daqui, pude ver que não havia espaço suficiente no servidor virtual /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. E pensei em migrar ou aumentar a unidade virtual, mas decidi primeiro remover arquivos desnecessários.

Portanto, tivemos que limpar o cache e os arquivos que não eram necessários:

#apt-get clean
#apt-get -f autoremove

Então, não esqueça de remover os arquivos de log corrompidos do mysql posteriormente. Eles seriam gerados novamente quando você reiniciar o mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Verifique o serviço do servidor mysql e ele provavelmente está em funcionamento

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Caso encerrado. Espero que ajude.

sukupandachu
fonte
0

Remova o arquivo /var/lib/mysql/.run-mysql_upgrade e ele deverá iniciar

;)

"Com grandes poderes vem grandes responsabilidades"

Adrian Pule
fonte
0

Eu tive esse problema quando eu definir max_allowed_packet = 0.5Mno /etc/mysql/my.cnf.

Eu o resolvi mudando max_allowed_packetpara 1M.

pele de rato
fonte
0

O comando a seguir resolve meu problema e o mysql pode iniciar após ele (pode ser útil em alguns casos)

chown -R mysql: /var/lib/mysql
Yusef
fonte