Hoje, eu queria criar um banco de dados no PMA. Ele dizia: "Não é possível efetuar login no servidor MySQL". Eu tentei através de um terminal, o mesmo problema, e é porque minha senha está errada. E eu não consigo entender o porquê.
Eu tentei o método usual para redefinir a senha root (pular a montagem de tabelas de concessão e redefinir a senha), mas parece que não funciona.
Veja que:
morgan@rakija:~$ sudo mysqld_safe --skip-grant-tables &
[1] 14016
morgan@rakija:~$ 150802 19:07:25 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
150802 19:07:25 mysqld_safe Logging to '/var/log/mysql/error.log'.
150802 19:07:25 mysqld_safe A mysqld process already exists
[1]+ Terminé 1 sudo mysqld_safe --skip-grant-tables
morgan@rakija:~$ mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.20-MariaDB-0ubuntu0.15.04.1 (Ubuntu)
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set password=PASSWORD("newPass") where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye
morgan@rakija:~$ sudo service mysql restart
morgan@rakija:~$ mysql -uroot -pnewPass
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
. Portanto, a melhor solução é continuar usando a autenticação de soquete unix padrão com o comandosudo mysql -u root
, o que eu acho que também é mais seguro e com melhor desempenho.Nesta resposta, http://ubuntuforums.org/showthread.php?t=2275033&p=13272227#post13272227 .
O Mysql tenta autenticar o root usando o plugin, não a senha. Você precisa desativar o uso do plug-in para root.
fonte
Could not open mysql.plugin table.
no log de erros.Conecte como descrito anteriormente:
O arquivo de log será mostrado:
Log de pesquisa listado (neste caso: /usr/local/mysql/data/ab123456.domain.com.err) para o soquete direito:
e use-o na conexão mysql:
fonte
$ mysqld_safe --skip-grant-tables 190818 14:13:35 mysqld_safe Logging to '/usr/local/var/mylaptop.local.err'. 190818 14:13:35 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
mas sou jogado de volta ao prompt do bash.Por padrão, o marriadb usa o plug-in de autenticação "unix_socket" para definir senhas, que deve ser "mysql_native_password", portanto
alternar banco de dados ..
primeiro veja o plugin de bruxa está definido ..
defina-o como "mysql_native_password"
definir nova senha ...
fonte