概要
- 前回の記事で、WordpressがあるEC2インスタンスにphpmyadminをインストールしましたが、設定したはずのDB情報でphpmyadminにアクセスできない問題に悩まされましたので、その解決方法を残します。
- WordpressをEC2インスタンスにインストールする方法(Apacheのバーチャルホスト設定方法・Wordpress用DB作成方法も解説)
- EC2へのphpMyAdminのインストール手順:「tar: yarn.lock: Cannot open」のエラー対応とphpMyAdminのapache設定
- phpMyAdminとは:MySQLデータベースを管理するためのWebベースのユーザーインターフェイス
環境
- Mac
- 機種ID:MacBookPro18,3
- macOS:Monterey
- チップ:Apple M1 Pro
- メモリ:16GB
- サーバー(AWS EC2インスタンス)
- OS:Ubuntu 18.04.3 LTS
- Web Server:Apache/2.4.29
前提
-
wp-config.php
に記載済みのユーザー名とパスワードではphpmyadminにアクセスできない。以下のエラーが表示されます。
#1045 - Access denied for user 'sample-user'@'localhost' (using password: YES)
mysqli_real_connect(): (HY000/1045): Access denied for user 'phpmyadmin'@'localhost' (using password: YES)
- 「指定したユーザー名とパスワードが間違っていることが多い」「ユーザーにphpMyAdminを使用するための権限がない」などの原因ではありませんでした。一般的にはまずここを疑うのが良いと思います。
原因
- WordPressの場合、phpMyAdminにログインする際には、
wp-config.php
に記載されたデータベース情報を使用する必要がありますが、よくよく自分が使っているデータベースを思い返すと、そこはwordpress用に作ったものではなく、既存サービスで他で使用しているデータベースサーバーに、wordpress用のデータベースを追加したのでした。なので、phpmyadmin設定側で設定されたウェブサーバーとデータベースサーバーへの接続情報の方でアクセスする必要があったようです。 - 上述した原因は推測です。別の要因じゃないか?という場合は、ぜひコメントで教えてください。
解決手順
- phpMyAdminを使用するには、データベースサーバーへの接続情報が必要になりますが、その設定ファイルが以下の2つ。
-
config-db.php
: phpMyAdminがデータベースサーバーに接続するための設定を保存するファイル(MySQLサーバーのホスト名、ユーザー名、パスワード、データベース名などの情報) -
phpmyadmin.conf
: Apache WebサーバーがphpMyAdminのWebインターフェイスを提供するための設定ファイル(ApacheがphpMyAdminを実行するために必要な設定)
-
- 今回はこちらの2点を修正してあげると解決しました。具体的には以下の手順になります。
- まず
/etc/phpmyadmin/config-db.php
で設定されているユーザー名とパスワードを変更します。
cd /etc/phpmyadmin/
sudo vi config-db.php
- デフォルトでは以下のように記載されているはずです。dbuserやdbpassを変更します。
$dbuser='phpmyadmin';
$dbpass='p@ssw0rd';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';
- 続いて、
/etc/dbconfig-common/phpmyadmin.conf
の設定も変更します。
$ cd /etc/dbconfig-common
$ sudo vi phpmyadmin.conf
- デフォルトではこちらも以下のように記載されているはずです。dbc_dbuserなどを必要に応じて変更します。
dbc_dbtype='mysql'
dbc_dbuser='phpmyadmin'
dbc_dbpass='p@ssw0rd'
dbc_dbport='3306'
dbc_dbname='phpmyadmin'
- apache2を再起動します。
sudo service apache2 restart
- 設定したDB情報でphpmyadminにログインすると、無事に入れました!!よかった。