Вы можете заставить MySQL / MariaDB установить свой пароль root, запустив процесс как root (без подключения ALTER USER
к сети) и войдя в систему без пароля, а затем выполнив команду, чтобы изменить пароль root. Большую часть этого я читаю здесь . Процедура немного отличается от MariaDB, но должна быть синтаксически эквивалентной.
Мне просто нужно было сделать это в сообществе MySQL 5.7.18 (в Fedora 24), поэтому известно, что оно работает как минимум на одной системе.
- Остановите любые
mysqld
экземпляры, отправив ихSIGTERM
(например, черезhtop
) или отключив их от менеджера сервисов (sudo systemctl stop mysqld.service
) Запустите MySQL как система корневого пользователя и раскошелиться его в фоновом режиме с:
$ sudo mysqld --skip-grant-tables --skip-networking --user=root &
Теперь, когда MySQL работает (и ужасно уязвим, отсюда и
--skip-networking
аргумент), войдите в него:$ sudo mysql -u root
Загрузите пользовательскую таблицу MySQL, чтобы мы могли ее редактировать:
mysql> FLUSH PRIVILEGES;
Установите новый пароль для пользователя root MySQL. Убедитесь, что вы правильно избегаете забавных персонажей.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'correct \'horse\' battery staple'; mysql> exit;
Отправьте MySQL еще
SIGTERM
:$ sudo kill `cat /var/run/mysqld/mysqld.pid`
Запустите MySQL снова нормально:
$ sudo systemctl start mysqld.service
Убедитесь, что теперь вы можете войти с паролем пользователя root MySQL:
$ mysql -u root -p
Вам будет предложено ввести пароль, и вы вуаля!