他の古いMySQLバージョンのように、ルートIDと空/パスワードなしで新規インストールした後、MySQLデータベースにログインできません
MySQLからMySQL-community-server 5.7をLinuxにインストールした後、rootとしてログインするには、/ var/log/mysqld.logから一時パスワードを見つける必要があります。
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
を実行して、新しいパスワードを変更します参照: 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> 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!
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
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';"
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パスワードを提供するように促されました!これと同じ経験を持つ他の人に役立つことを願っています。
Mysqlはインストール時にデフォルトの一時パスワードを生成するため、最初にmysqlを使用するには、/ var/log/mysqld.logにあるログファイルからそのパスワードを取得する必要があります。したがって、次のプロセスに従ってください-
grep '一時パスワード' /var/log/mysqld.log
mysql_secure_installation-これは、mysqlのパスワードを変更し、一時データベースの削除、rootユーザーへのリモートアクセスの許可または禁止、匿名ユーザーの削除などの他の特定の変更を行うために必要です。
何度も試した後、次のコマンド(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
時々動作しません。コンピューターを再起動した後にのみ。
開発者が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
ブーム!
私は同じ問題を経験していましたが、それを機能させるためにできた唯一のことは、このルートに行くことでした:
drop user admin@localhost; flush privileges; create user admin@localhost identified by 'admins_password'
</ code>
これにより、 username を入力します パスワード ユーザー名
私の場合、データディレクトリは--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';
Ubuntu Server 18.04.1およびMySQL 5.7.23では、これらの回答はどれもうまくいきませんでした。私はパスワードと認証プラグインを手動で設定しようとして失敗したり、ログでパスワードを見つけたり(そこにはありません)など、多くの時間を費やしました.
ソリューションは実際には非常に簡単です。
Sudo mysql_secure_installation
Sudo
でこれを行うことは本当に重要です。昇格せずに試してみると、rootパスワードを求められますが、明らかに持っていません。