Когда я являюсь пользователем root, mysql подключается без пароля, хотя я его установил:
# 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
но, к сожалению, такое бывает ...
# 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>
Так что, хотя я установил пароль, и он проверяется, когда я использую "-p", это не обязательно!?!?
РЕДАКТИРОВАТЬ: Это был мой .my.cnf, внутри был пароль для входа. Удалил, все ок.
Возможно, у вас есть учетные данные пользователя в ~ / .my.cnf
[client] user=john password=smith
В моем случае это было то, что пользователь root MySQL использовал Подключаемая аутентификация с одноранговыми учетными данными сокета.
Насколько я понимаю, если пользователь unix, вызывающий mysql
команда соответствует пользователю MySQL, она разрешит соединение для локального сокета (без удаленного). Таким образом, передача любого пароля не будет иметь никакого эффекта, потому что этот тип аутентификации не требует пароля.
Вы можете увидеть, есть ли у вас пользователи, которые используют auth_socket
плагин.
select Host, User, plugin from mysql.user where plugin = 'auth_socket';
Я использовал Ubuntu 18.04 и запустил mysql_secure_installation
сценарий.
mysql> update user set plugin='' where User='root';
mysql> flush privileges;