LINUX.ORG.RU
ФорумAdmin

MariaDB root пароль

 


0

1

Всем привет!

После установки MariaDB на Ubuntu 16.04, запустил скрипт mysql_secure_installation, и через него установил пароль для root.

Но в mysql -u root пускает сразу и пароль не запрашивает. Если mysql -u root -p вообще принимает любой пароль.

Как установить пароль для root?

Перемещено leave из general


Попробуй при подключении задавать параметры -h localhost и -h 127.0.0.1. Localhost - это подключение через unix socket, а 127.0.0.1 - tcp и для них права устанавливаются для каждого отдельно.

anonymous
()
15 ноября 2017 г.

Столкнулся с той же проблемой, причем с mariadb работал впервые (прилетело в debian stretch вместо mysql - решили попробовать).

По началу удивило, что при установке (10.1) не было вопроса о рутовом пароле, потом увидел, что он просто не задан и задал вручную (в нашей логике рутовый пароль прилетает из сальта как при установке пакета, так и при раскладывании .my.cnf)

Результат - пользователю root дает авторизоваться с любым паролем и без него; любому другому пользователю авторизация в mysql под рутом невозможна даже с правильным паролем, скрипт mysql_secure_installation не помог, как и ручная установка пароля.

Долго думал, смотрел сюда: Не получается сменить пароль ROOT mariadb 10.1.23 на DEBIAN 9

Симптомы 1 в 1, но установка 10.2 не подходит (отсутствует в репозитории). Потом в таблице user нашел такую колонку (у root): plugin: unix_socket

https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/

И все встало на свои места :)

deadlymercury
()

Вангую, что при запуске клиента mysql под системным пользователем root, и при указании логина -u root, он по умолчанию соединяется только через UNIX Sockets, и не проверяет пароль, даже если он есть и/или указан. И да, он тебя не пустит по-другому (например через IPv4 localhost), даже если укажешь правильный пароль.

В общем, я подумал и решил выложить, что надо сделать, чтобы ввод пароля работал (мне надобилось, при установке кое-какого софта). Может, и самому понадобится. Ссылки не привожу, очень долго искал, по разным местам собирая инфу.

Смотри:

# mysql -u root
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set password=PASSWORD("my-new-cool-password") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> update user set plugin='' where User='root';
MariaDB [mysql]> quit;
Bye
# systemctl restart mariadb

Вернуть обратно так:

# mysql -u root -p
Enter password: 
( вводим пароль my-new-cool-password )
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set plugin='unix_socket' where User='root';
MariaDB [mysql]> quit;
Bye
# systemctl restart mariadb
Проверяем вход root без пароля:
# mysql -u root
MariaDB [(none)]> quit;
Bye

По смыслу уберешь в коде изменение пароля. Проверено на Debian GNU/Linux 9 AMD64.

Infra_HDC ★★★★★
()
Последнее исправление: Infra_HDC (всего исправлений: 1)
17 декабря 2018 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.