UbuntuにphpMyAdminを構築してDBをGUI管理する方法

サーバー構築

Ubuntuでデータベースを管理するなら、phpMyAdminが便利です。しかし、apt で直接インストールすると、rootユーザーのデフォルト認証方式(unix_socket)が原因で、ブラウザからパスワードでログインできないという罠にはまることがあります。私も最初、rootでログインしようとして何度も「アクセス拒否(#1045)」のエラーに悩まされました。

ここでは、ホスト環境を汚さず、Dockerを利用した安全で簡単なphpMyAdminの構築手順を、Ubuntu 24.04 LTS上で実行した実測データに基づいて解説します。これを使えば、数分でGUIから管理できるようになります。

この記事のポイント

  • Dockerを使えば、依存関係やバージョンのトラブルを避けられる
  • MariaDBのrootユーザーはデフォルトでパスワードログイン不可(初学者がつまずくポイント)
  • 専用の管理ユーザーを作成すれば、すぐに安全にWeb管理画面へ接続できる

前提環境

本記事は以下の環境で検証しました。

  • OS: Ubuntu 24.04 LTS (Noble Numbat)
  • 実行環境: Docker (公式 ubuntu:24.04 イメージ / mariadb:10.11 イメージ)
  • 検証日: 2026年6月15日

注意

本記事では、ホストOSの環境を汚さないよう、すべての検証をDockerコンテナ上で実行しています。実際にVPSなどで運用する際も、Dockerを使うのがおすすめです(後で片付けがラクですし、セキュリティも保ちやすいからです)。

手順1:phpMyAdmin関連パッケージの最新情報を確認する

まず、Ubuntu 24.04の公式リポジトリに用意されているパッケージのバージョンを確認します。apt-cache policy コマンドを使うと、インストール可能な最新バージョンが分かります。




ubuntu@linuxlab: ~
$ docker run –rm ubuntu:24.04 bash -c ‘apt-get update -qq && apt-cache policy phpmyadmin mariadb-server’
phpmyadmin:
Installed: (none)
Candidate: 4:5.2.1+dfsg-3
mariadb-server:
Installed: (none)
Candidate: 1:10.11.14-0ubuntu0.24.04.1

実測ログの通り、phpMyAdminは 5.2.1、MariaDBは 10.11.14 が最新であることが分かります。

Ubuntu 24.04 における phpMyAdmin と MariaDB の最新パッケージ情報(実測)
Ubuntu 24.04 における phpMyAdmin と MariaDB の最新パッケージ情報(実測)

手順2:DockerでMariaDBとphpMyAdminを起動する

ここでは、公式のDockerイメージを使用して、データベースと管理画面を一度に立ち上げます。次のコマンドを順番に実行します。

まず、データベースとなるMariaDBコンテナを起動します。ここで、専用の管理ユーザー(pma_admin)も一緒に作ってしまいます。




ubuntu@linuxlab: ~
$ docker run -d –name linuxlab_db \
-e MARIADB_ROOT_PASSWORD=RootPass123! \
-e MARIADB_USER=pma_admin \
-e MARIADB_PASSWORD=SecurePass123! \
-e MARIADB_DATABASE=testdb \
mariadb:10.11

次に、先ほどのデータベースにリンクさせる形で、phpMyAdminコンテナを起動します。




ubuntu@linuxlab: ~
$ docker run -d –name linuxlab_pma \
–link linuxlab_db:db \
-p 8080:80 \
-e PMA_HOST=db \
phpmyadmin:latest

これで、サーバーの 8080 番ポートでphpMyAdminにアクセスできるようになりました。状態は次のコマンドで確認します。

docker ps によるコンテナ起動状態の確認(実測)
docker ps によるコンテナ起動状態の確認(実測)

手順3:ブラウザからphpMyAdminにアクセスする

ブラウザを開き、 http://サーバーのIPアドレス:8080 (ローカル環境なら http://localhost:8080)にアクセスします。

次のようなログイン画面が表示されます。ここで気をつけるべきは、rootユーザーではログインできない点です。

phpMyAdmin 初期ログイン画面
phpMyAdmin 初期ログイン画面

【重要】rootユーザーでログインできない理由

UbuntuのMariaDBパッケージは、セキュリティ強化のため、rootユーザーのデフォルト認証プラグインを unix_socket に設定しています。これは、OSのrootユーザーとして端末にログインしている場合のみデータベースへの接続を許可する仕組みです。そのため、Webブラウザからのパスワード入力によるrootログインは、設定を変更しない限り「アクセスが拒否されました (#1045)」というエラーが出ます。

この問題を回避するには、手順2で行ったように、Web管理専用のユーザーを別途作成するのが一番確実です。作成した pma_admin と、設定したパスワード(本例では SecurePass123!)を入力して「実行」ボタンを押してください。

認証に成功すると、次のような管理ダッシュボードが表示されます。左側のサイドバーには、作成した testdb やシステムデータベースが一覧で表示されています。

ログイン成功後の phpMyAdmin メインダッシュボード
ログイン成功後の phpMyAdmin メインダッシュボード

手順4:GUIでデータベースを操作してみる

画面上部の「SQL」タブをクリックすると、直接クエリを入力して実行できる画面が開きます。ここでは簡単なテーブル作成とデータ挿入を実行してみます。

SQLタブでのクエリ実行画面
SQLタブでのクエリ実行画面

「実行」ボタンを押すと、下部に「クエリは正常に実行されました」という緑色のメッセージが表示され、GUI上でデータベースを構築できます。コマンドラインの mariadb クライアントで手間がかかる操作も、phpMyAdminならマウスだけで終わります。

よくあるエラーと解決策

エラー:#1045 – Access denied for user ‘root’@’localhost’

これはrootユーザーの認証方式が原因です。解決策は2つあります。

  1. (推奨)本記事のように、mariadb ユーザーとして専用アカウントを作成する。
  2. rootの認証方式を mysql_native_password に変更する(セキュリティレベルが下がるため本番環境では非推奨)。

エラー:phpMyAdminの画面が表示されない(接続拒否)

Dockerコンテナが正常に起動していないのかもしれません。docker ps コマンドで linuxlab_pmalinuxlab_db のステータスが Up になっているか確認してください。もし Exited になっている場合は、docker logs linuxlab_db でエラーログを確認しましょう。

まとめ

UbuntuでphpMyAdminを構築する時、apt からの直接インストールは依存関係や認証方式の罠が多く、初学者がつまずきやすいポイントです。一方で、Dockerの公式イメージを利用すれば、コマンド数行で隔離された安全な環境をすぐに構築できます。

今回の実測でも確認したように、専用の管理ユーザーを作成する一手間を加えるだけで、ブラウザからデータベースを管理できるようになります。この手順を試して、VPS環境でのデータベース運用を効率よく進めてみてください。

本格的にLinuxサーバーを運用し、複数のサービスを動かすなら、安定性と性能に優れたVPSの選択が重要です。

さらに詳しいサーバーの初期構築手順やセキュリティ設定については、以下の記事も合わせてご覧ください。

コメント

タイトルとURLをコピーしました