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!