Не может войти в базу данных MySQL после того, как новая установка с корневым идентификатором и пустым/нет паролем как другие более старые версии MySQL сделает
После большой попытки я могу изменить пароль по умолчанию со следующими командами (Ubuntu и производные):
sudo -i
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
use mysql;
update user set authentication_string=password('YOURPASSWORD') where user='root';
update user set plugin="mysql_native_password" where User='root';
flush privileges;
quit;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
Иногда, даже, после того, как введено в терминале
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
я получил ошибку, которую не делают mysqld существует. Так, выход и тип те же команды снова.
И заключительная команда
sudo /etc/init.d/mysql start
Иногда не работает. Только после перезапуска компьютер.
Сервер MySQL 5.7 был уже установлен по умолчанию на моем новом Linux Mint 19.
, Но, каков пароль MySQL root
? Оказывается что:
использование стандартной установки auth_socket
для аутентификации, вместо паролей!
Это позволяет вход в систему без паролей, при условии, что в каждого входят система Linux с тем же именем пользователя. Для входа в систему как корень MySQL user
можно использовать sudo:
sudo mysql --user=root
, Но как затем изменить пароль root? Для иллюстрирования, что продолжается я создал нового пользователя "меня", с полными полномочиями, с:
mysql> CREATE USER 'me'@'localhost' IDENTIFIED BY 'my_new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
Сравнение "меня" с "корнем":
mysql> SELECT user, plugin, HEX(authentication_string) FROM mysql.user WHERE user = 'me' or user = 'root';
+------+-----------------------+----------------------------------------------------------------------------+
| user | plugin | HEX(authentication_string) |
+------+-----------------------+----------------------------------------------------------------------------+
| root | auth_socket | |
| me | mysql_native_password | 2A393846353030304545453239394634323734333139354241344642413245373537313... |
+------+-----------------------+----------------------------------------------------------------------------+
, поскольку это использует auth_socket, пароль root не может быть изменен: SET PASSWORD
сбои команды, и mysql_secure_installation
desn't достигают чего-либо...
==>, Чтобы убить этот альтернативный режим аутентификации и возвратить пользователя MySQL root
использованию паролей:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';
[еще 1121] детали из руководства . MySQL