LINUX.ORG.RU

История изменений

Исправление Infra_HDC, (текущая версия) :

Вангую, что при запуске клиента 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, :

Вангую, что при запуске клиента 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