Каков корневой пароль по умолчанию для MySQL 5.7

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

61
задан 30 November 2015 в 06:57

2 ответа

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

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

1
ответ дан 31 October 2019 в 14:46

Сервер 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

3
ответ дан 31 October 2019 в 14:46

Другие вопросы по тегам:

Похожие вопросы: