Подтвердить что ты не робот

Что такое пароль pasword по умолчанию для MySQL 5.7

Невозможно войти в базу данных MySQL после новой установки с идентификатором root и пустым/нет пароля, как и другие старые версии MySQL.

4b9b3361

Ответ 1

После того, как вы установили MySQL-community-server 5.7 из свежих в linux, вам нужно будет найти временный пароль из /var/log/mysqld.log для входа в систему с правами администратора.

  • grep 'temporary password' /var/log/mysqld.log
  • Запустите mysql_secure_installation, чтобы изменить новый пароль

ref: http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

Ответ 2

Там так много ответов там говорят, чтобы переустановить 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> COMMIT;  // When you don't have auto-commit switched on

Или:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Или же:

// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';

Затем:

mysql> FLUSH PRIVILEGES;
mysql> COMMIT;  // When you don't have auto-commit switched on
mysql> EXIT

$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!

Ответ 3

MySQL 5.7 изменил модель безопасности: теперь для входа в MySQL требуется sudo

Простейшим (и самым безопасным) решением будет создание нового пользователя и предоставление необходимых привилегий.

1. Подключитесь к mysql

sudo mysql --user=root mysql

2. Создайте пользователя для phpMyAdmin

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Ссылка - https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7

Ответ 4

Если вы хотите установить mysql или percona без присмотра (например, в моем случае невозможно), вы можете использовать следующие script:

# 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/.*[email protected]: //p')

# setting new password, you can use $1 and run this script as a file and pass the argument through the script

newPassword="[email protected]"

# resetting temporary password

mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';"

Ответ 5

Mysql генерирует временный пароль по умолчанию после новой установки. Чтобы сначала использовать mysql, вам потребуется получить этот пароль из файла журнала, который присутствует на /var/log/mysqld.log. Поэтому выполните следующий процесс:

  1. # grep 'temporary password' /var/log/mysqld.log

  2. # mysql_secure_installation

Вторая команда требуется для изменения пароля для mysql, а также для внесения некоторых других изменений, таких как удаление временных баз данных, разрешение или запрет удаленного доступа для пользователя root, удаление анонимных пользователей и т.д.

Ответ 6

Сервер MySQL 5.7 уже был установлен по умолчанию на моем новом Linux Mint 19.

Но какой пароль у MySQL root? Оказывается, что:

Установка по умолчанию использует auth_socket для аутентификации вместо паролей!

Это позволяет входить без пароля при условии, что вы вошли в систему Linux с тем же именем пользователя. Чтобы войти в систему как root 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 ничего не достигает...

==> Чтобы закрыть этот альтернативный режим аутентификации и вернуть пользователю MySQL root пароли:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';

хорошее объяснение.

Больше подробностей из руководства MySQL.

Ответ 7

Я только что установил Linux Mint 19 (основанный на Ubuntu 18.04) на моей машине. Я установил MySQL 5.7 из репо (sudo apt install mysql-server) и, что удивительно, во время установки установка не запрашивала пароль root. В результате я не смог войти в MySQL. Я искал кое-где и искал различные ответы, которые я нашел в сети, включая принятый ответ выше. Я удалил (очистил все dpkgs с помощью mysql в своем имени) и снова установил его из репозиториев Linux Mint по умолчанию. NONE работает.

После нескольких часов непроизводительных работ я решил переустановить MySQL с официальной страницы. Я открыл страницу загрузки MySQL (https://dev.mysql.com/downloads/repo/apt) для apt repo и нажал кнопку " Загрузить" внизу справа.

Затем запустите его с помощью 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! Надеюсь, это поможет другим людям с таким же опытом.

Ответ 8

Ни один из этих ответов не работал для меня на сервере Ubuntu 18.04.1 и MySQL 5.7.23. Я потратил кучу времени, пытаясь и не сумев установить пароль и плагин auth вручную, найти пароль в журналах (его нет) и т.д.

Решение на самом деле очень просто:

sudo mysql_secure_installation

Очень важно сделать это с помощью sudo. Если вы попытаетесь без повышения, вам будет предложено ввести пароль root, которого вы, очевидно, не имеете.

Ответ 9

Кажется, что все было сделано для того, чтобы разработчики не могли использовать пользователя 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

Boom!

Ответ 10

После долгих попыток я могу сбросить пароль по умолчанию с помощью следующих команд (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

Иногда не работает. Только после перезагрузки компьютера.

Ответ 11

У меня была одна и та же проблема, и единственное, что я смог сделать, чтобы заставить ее работать, - это пойти по этому пути:

drop user [email protected]; flush privileges; create user [email protected] identified by 'admins_password'

Это позволило мне воссоздать мое имя пользователя и ввести пароль для имени пользователя

Ответ 12

В моем случае каталог данных был автоматически инициализирован с параметром --initialize-insecure. Так что /var/log/mysql/error.log не содержит временного пароля, но:

[Warning] 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