Talvez você tenha credenciais de usuário em seu ~ / .my.cnf
[client] user=john password=smith
Quando eu sou root, o "mysql" se conecta sem uma senha, mesmo que eu tenha definido um:
# mysqladmin -u root password 'whatever'
# mysql -u root -p
Enter password: (typing the 'whatever' above)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.1.22-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> Bye
mas infelizmente isso também acontece ...
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25 to server version: 4.1.22-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Então, mesmo que eu tenha definido a senha, e é verificado quando eu uso "-p", no entanto, não é necessário!?!?
EDITAR : Era meu .my.cnf, tinha a senha de login dentro dele. Removido, tudo bem.
Talvez você tenha credenciais de usuário em seu ~ / .my.cnf
[client] user=john password=smith
No meu caso, o usuário root do MySQL estava usando o Socket Peer Autenticação Pluggable -Credential .
Pelo que entendi, é que se o usuário unix que invocar o comando mysql
corresponder ao usuário do MySQL, ele permitirá uma conexão para um soquete local (sem controle remoto). Portanto, passar qualquer senha não terá efeito porque esse tipo de autenticação não precisa de senha.
Você pode ver se tem usuários que usam auth_socket
plugin.
select Host, User, plugin from mysql.user where plugin = 'auth_socket';
Eu estava usando o Ubuntu 18.04 e executei o script mysql_secure_installation
.
mysql> update user set plugin='' where User='root';
mysql> flush privileges;