Что такое корневой пароль по умолчанию для MySQL 5.7
Не удается войти в базу данных MySQL после новой установки с идентификатором root и пустым / без пароля, как и другие старые версии MySQL
8 ответов
после того, как вы установили MySQL-community-server 5.7 из fresh на linux, вам нужно будет найти временный пароль от /var/log/mysqld.войдите в систему как root.
grep 'temporary password' /var/log/mysqld.log
- Run
mysql_secure_installation
изменить новый пароль
ref:http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
есть так много ответов, говорящих о переустановке mysql или использовании некоторого комбо
mysqld_safe --skip-grant-tables
и / или
UPDATE mysql.user SET Password=PASSWORD('password')
и / или что-то другое ...
... Ничто из этого не работало на меня
вот что сработало для меня, на Ubuntu 18.04, сверху
С особым кредитом на ответ для выкапывания меня из разочарования на этом ...
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
обратите внимание на строки, которые гласят:
user = debian-sys-maint
password = blahblahblah
затем:
$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from debian.cnf
mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | auth_socket |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
mysql> FLUSH PRIVILEGES;
mysql> COMMIT; // When you don't have auto-commit switched on in your CLI
mysql> EXIT
$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!
Если вы хотите установить mysql или percona без присмотра (как в моем случае ansible), вы можете использовать следующий скрипт:
# first part opens mysql log
# second part greps lines with temporary password
# third part picks last line (most recent one)
# last part removes all the line except the password
# the result goes into password variable
password=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*root@localhost: //p')
# setting new password, you can use and run this script as a file and pass the argument through the script
newPassword="wh@teverYouLikE"
# resetting temporary password
mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';"
Я только что установил Linux Mint 19 (на основе Ubuntu 18.04) на своей машине. Я установил MySQL 5.7 из РЕПО (sudo apt установить mysql-server) и удивительно во время установки, Установка не запрашивала ввод root пароль. В результате я не смог войти в MySQL. Я гуглил здесь и там и пробовал различные ответы, которые я нашел в сети, включая принятый ответ выше. Я удалил (очистка всех dpkgs с помощью в MySQL в его названии) и переустановлен снова из репозиториев Linux Mint по умолчанию. Ничего не работает.
после нескольких часов непродуктивных работ я решил переустановить MySQL с официальной страницы. Я открыл страницу загрузки MySQL (https://dev.mysql.com/downloads/repo/apt) для apt РЕПО и нажал скачать внизу справа.
затем запустите его с помощью dpkg:
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
в настройки установки, выберите версию MySQL, которую вы хотите установить. Опция по умолчанию-8.0, но я изменил ее на 5.7. Нажмите OK, чтобы выйти. После этого у вас есть новое РЕПО MySQL в ваших источниках программного обеспечения.
обновить РЕПО:
sudo apt update
наконец, установите MySQL:
sudo apt install mysql-server
и теперь мне было предложено указать root пароль! Надеюсь, это поможет другим с таким же опытом.
я испытывал ту же проблему, и единственное, что я мог сделать, чтобы заставить его работать, это пойти по этому маршруту:
drop user admin@localhost;
flush privileges;
create user admin@localhost identified by 'admins_password'
Это позволило мне воссоздать мою имя пользователя и введите пароль имя пользователя
в моем случае каталог данных был автоматически инициализирован с помощью . Так что /var/log/mysql/error.log
не содержит временного пароля, но:
[предупреждение] root@localhost создается с пустым паролем ! Пожалуйста рассмотрите возможность отключения опции -- initialize-insecure.
что сработало:
shell> mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
детали: MySQL 5.7 справочное руководство > 2.10.4 обеспечение начальной учетной записи MySQL
ни один из этих ответов не работал для меня на Ubuntu Server 18.04.1 и MySQL 5.7.23. Я потратил кучу времени, пытаясь установить пароль и плагин auth вручную, найти пароль в журналах (его там нет) и т. д.
решение на самом деле очень легко:
sudo mysql_secure_installation
это действительно важно, чтобы сделать это с sudo
. Если вы попытаетесь без повышения, вам будет предложено ввести пароль root, которого у вас, очевидно, нет.
кажется, что вещи были разработаны, чтобы избежать разработчиков, чтобы увидеть пользователя root, лучшим решением было бы:
sudo mysql -u root
затем создайте обычного пользователя, установите пароль, а затем используйте этого пользователя для работы.
create user 'user'@'localhost' identified by 'user1234';
grant all on your_database.* to 'user'@'localhost';
select host, user from mysql.user;
затем попробуйте получить доступ:
mysql -u user -p
- бум!