web-dev-qa-db-ja.com

MySQL 5.7のデフォルトのルートパスワードは何ですか

他の古いMySQLバージョンのように、ルートIDと空/パスワードなしで新規インストールした後、MySQLデータベースにログインできません

53
Ryan

MySQLからMySQL-community-server 5.7をLinuxにインストールした後、rootとしてログインするには、/ var/log/mysqld.logから一時パスワードを見つける必要があります。

  1. grep 'temporary password' /var/log/mysqld.log
  2. mysql_secure_installationを実行して、新しいパスワードを変更します

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

90
Ryan

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!
85
Stewart

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

19
Sachin Vairagi

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 $1 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';"
7
hpaknia

Linux Mint 19(Ubuntu 18.04ベース)をマシンにインストールしました。リポジトリからMySQL 5.7をインストールしました(Sudo apt install mysql-server)。驚くべきことに、インストール中に、セットアップがrootパスワード。その結果、MySQLにログインできませんでした。私はあちこちでグーグルで検索し、ネットで見つけたさまざまな答えを試しました。アンインストールし(名前にmysqlを含むすべてのdpkgをパージ)、デフォルトのLinux Mintリポジトリから再インストールしました。なし。

数時間の非生産的な作業の後、公式ページからMySQLを再インストールすることにしました。 aptリポジトリのMySQLダウンロードページ( https://dev.mysql.com/downloads/repo/apt )を開き、Download右下のボタン。

次に、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パスワードを提供するように促されました!これと同じ経験を持つ他の人に役立つことを願っています。

1

Mysqlはインストール時にデフォルトの一時パスワードを生成するため、最初にmysqlを使用するには、/ var/log/mysqld.logにあるログファイルからそのパスワードを取得する必要があります。したがって、次のプロセスに従ってください-

grep '一時パスワード' /var/log/mysqld.log

mysql_secure_installation-これは、mysqlのパスワードを変更し、一時データベースの削除、rootユーザーへのリモートアクセスの許可または禁止、匿名ユーザーの削除などの他の特定の変更を行うために必要です。

1
Vipul Sharma

何度も試した後、次のコマンド(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
Leonardo

開発者が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

ブーム!

1
Pablo Pazos

私は同じ問題を経験していましたが、それを機能させるためにできた唯一のことは、このルートに行くことでした:

drop user admin@localhost; flush privileges; create user admin@localhost identified by 'admins_password' </ code>

これにより、 username を入力します パスワード ユーザー名

0
Donald L Wilson

私の場合、データディレクトリは--initialize-insecureオプションで自動的に初期化されました。したがって、/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アカウントの保護

0
Ra.

Ubuntu Server 18.04.1およびMySQL 5.7.23では、これらの回答はどれもうまくいきませんでした。私はパスワードと認証プラグインを手動で設定しようとして失敗したり、ログでパスワードを見つけたり(そこにはありません)など、多くの時間を費やしました.

ソリューションは実際には非常に簡単です。

Sudo mysql_secure_installation

Sudoでこれを行うことは本当に重要です。昇格せずに試してみると、rootパスワードを求められますが、明らかに持っていません。

0
bendodge