web-dev-qa-db-ja.com

Ubuntu 20.04 mysql phpmyadmin rootパスワードを設定する

Ubuntu 20.04にLAMPをインストールしました。

(ドイツ語) https://wiki.ubuntuusers.de/MySQL/Werkzeuge/

Localhost/phpmyadminにログインするためのrootパスワードを取得することは常に問題です。 Ubuntu 18.04には良いチュートリアルがいくつかありました(いくつか):

_SERVER BEENDEN:
  Sudo service mysql stop
  Sudo mkdir -p /var/run/mysqld
  Sudo chown mysql:mysql /var/run/mysqld
  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
PRÜFEN MIT:
  jobs
STARTEN von MYSQL:
  mysql -u root
    mysql> FLUSH PRIVILEGES;
    mysql> USE mysql; 
    mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE user='root';
    mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
    mysql> quit
  Sudo pkill mysqld
  Sudo service mysql start
_

実際のubuntuバージョンでは、PASSWORDコマンドが認識されていないようです。次のエラーが表示されます。

mysql> UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

エラー1064(42000):SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、 '(' YOURNEWPASSWORD ')WHERE user =' root ''の近くで1の近くに使用する正しい構文を確認してください

私のmysqlバージョン:

linux on x86_64用のmysql Ver 8.0.19-0ubuntu5((Ubuntu))

1

このパズルにはいくつかの部分があります

パスワードを変更するには

CLIからrootでログインします。

Sudo mysql -u root -p

その後

ALTER USER 'root'@'localhost' IDENTIFIED BY '<New-Password-Here>';

物事を実際に機能させるには

phpmyadmin.netから

MySQL認証方式の変更により、PHP 7.4より前のバージョンは、MySQL 8.0に認証できません何とか何とか何とかhttps://bugs.php.net/bug.php?id=7624

現在のスタイルのパスワードハッシュ方式mysql_native_passwordを使用するようにユーザーアカウントを設定するという回避策があります。 この不幸な調整の欠如により、非互換性がすべてのPHPアプリケーションに影響を及ぼし、phpMyAdminだけではありません。

そう

UPDATE user SET plugin="mysql_native_password" WHERE user='root';

本当に本当に物事を働かせるために...本当に

MySQLはセキュリティモデルを変更し、rootログインにはSudoが必要になりました。これはCLIでは問題ありませんが、PhpMyAdminおよび他のすべてのクライアントがルート認証情報を使用できないことを意味します

最良の解決策は、PhpMyAdminの新しいユーザーを作成(または、インストール中に作成された場合は既存のユーザーを使用)して、必要な権限を付与することです。

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<New-Password-Here>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

このユーザーは、 "root"アクセスを必要な場所で使用します。


また、最新バージョンのPHPを使用していることも確認してください。これが私の完全なインストールスクリプトです

[〜#〜] php [〜#〜]

Sudo apt install -y php7.4
Sudo apt install php7.4-curl php7.4-Gd php7.4-json php7.4-mbstring php7.4-xml

Apache

Sudo apt install Apache2 libapache2-mod-php7.4

[〜#〜] mysql [〜#〜]

Sudo apt install mysql-server php7.4-mysql
Sudo mysql_secure_installation

[〜#〜] phpmyadmin [〜#〜]

Sudo apt install phpmyadmin
2