Назад | Перейти на главную страницу

Когда я root, mysql подключается без пароля, хотя я его установил.

Когда я являюсь пользователем 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;