Mysql no Ubuntu 16.04: não pode logar como root, não pode iniciar no modo de segurança, / var / run / mysqld removido na reinicialização

0

Eu não consigo fazer o mysql trabalhar com o Ubuntu 16.04 em um Dell XPS-13 9360, mysql versão 5.7.17. Parece haver dois problemas:

1) Não consigo fazer login como root ou superusuário ou iniciar o mysql no modo de segurança.

2) A pasta /var/run/mysqld é removida quando o serviço é interrompido.

Aqui estão os detalhes;

Eu purgou e reinstalei o mysql executando estes comandos ( source ) no terminal:

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean

Reinstalado com:

sudo apt-get dist-upgrade
sudo apt-get install mysql-server

Após a instalação, quando eu digito um desses comandos no terminal:

mysql -uroot

ou

sudo mysql -u root

Eu vejo esta mensagem:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Eu tentei iniciar o mysql no modo de segurança com estes comandos:

sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &

que falha com esta mensagem:

2017-04-26T08:54:42.307043Z mysqld_safe Logging to syslog.
2017-04-26T08:54:42.309096Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-04-26T08:54:42.311019Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-04-26T08:54:42.313024Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Eu posso fazer o mysql funcionar temporariamente, digitando estes comandos que eu encontrei em Após a nova instalação do servidor mysql, não consigo logar com mysql root -u :

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

Isso substitui o arquivo ausente e inicia o mysql no modo de segurança. Então, em um novo terminal:

mysql -uroot
SET PASSWORD for root@localhost = password('test')
FLUSH PRIVILEGES
\q

pare e reinicie o mysql no modo normal

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

Depois disso, posso fazer login usando:

sudo mysql -uroot

ou

mysql -u root -p

MAS se eu parar e reiniciar o serviço novamente, não consigo fazer login. Se eu inserir:

sudo mysql -uroot

Eu vejo este erro:

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

Além disso, ao reinicializar o computador, todo o problema se repete. Eu tentei a solução alternativa em este bug ; Eu criei um arquivo mysql.conf contendo este código:

# systemd tmpfile settings for mysql
# See tmpfiles.d(5) for details

d /var/run/mysqld 0755 mysql mysql -

e salvei-o nesses locais:

/etc/mysql/mysql.conf.d
/etc/tmpfiles.d

Mas não fez diferença.

Eu ficaria muito grato por qualquer informação que possa me ajudar a fazer o mysql funcionar!

    
por Little Brain 26.04.2017 / 11:44

1 resposta

4

Parece que o problema original foi causado por não configurar uma senha para root quando eu instalei o mysql pela primeira vez. Isso costumava ser normal para desenvolvimento local, mas parece que no mysql 5.7.17, isso causa todos os tipos de problemas, e a configuração de uma senha depois não corrige isso.

Isso foi agravado por eu não desinstalar o mysql corretamente quando tentei novamente.

No final, o que funcionou foi desinstalar o mysql usando:

sudo apt purge mysql*

Remova a pasta / etc / mysql

Remova / var / lib / mysql, / var / lib / mysql-files, pastas / var / lib / mysql-keyring.

Reinicie

Instale o mysql usando:

sudo apt-get install mysql-server

Certifique-se de definir uma senha para o root!

    
por Little Brain 26.04.2017 / 19:33