IT・個人事業

UbuntuにMySQLをインストールしたもののrootログインでひっかかったので備忘録

公開: 更新:

※ 本記事にはアフィリエイト広告(Amazonアソシエイト・楽天アフィリエイト等)が含まれています。

UbuntuにMySQLを入れて、いざrootでログインしようとしたら弾かれてしまい、しばらく詰まったので備忘録として残します。この挙動は昔からのものですが、最新のUbuntu(24.04 / 26.04 LTS)や現行のMySQL 8系でも基本的に同じなので、手順を整理し直しました。

結論:sudo を付けてログインする

先に結論です。ターミナルで次を実行したら、あっさりログインできました。

sudo mysql

Windowsやレンタルサーバーの癖で、私はつい mysql -u root -p と打ってパスワードを求められる形を期待していたのですが、これだと Access denied で弾かれます。

なぜ mysql -u root -p では入れないのか

理由は、最近のUbuntuにおけるMySQLの root初期認証方式 にあります。

インストール直後のMySQLでは、root@localhost の認証に auth_socket(MariaDBの場合は unix_socket というプラグインが使われています。これは「パスワードを照合する」のではなく、「OSにログインしているユーザーがrootか(=sudoで実行しているか)」を見て認証する 仕組みです。

つまり、

  • mysql -u root -p … パスワードで認証しようとする → そもそもパスワード認証じゃないので弾かれる
  • sudo mysql … OSのroot権限で実行 → auth_socket が「OKこの人はrootだ」と通してくれる

というわけで、sudo を付けるだけで入れた、という話でした。この方式は「rootのパスワードが漏れても、サーバーにログインできなければ悪用できない」という、セキュリティ上むしろ安全な初期設定になっています。

補足:ERROR 1698 (28000): Access denied for user 'root'@'localhost' というエラーが出る場合も、原因はこの auth_socket 方式です。パスワードが間違っているのではなく、認証方式が合っていない、というのがポイントです。

rootにパスワードを設定してログインしたい場合

「どうしてもパスワードでログインしたい」「アプリからrootで接続したい」ときは、認証方式をパスワード方式に切り替えます。まずは sudo mysql で入り、次のように実行します。

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '設定したいパスワード';
FLUSH PRIVILEGES;

caching_sha2_password はMySQL 8系の標準的なパスワード認証プラグインです。古いアプリで互換性の問題が出る場合は、代わりに mysql_native_password を指定します。設定できたら抜けます。

EXIT;
本来、rootをパスワード認証に変えてまで使うより、アプリ用の専用ユーザーを別途作って必要な権限だけ与えるほうが安全です。rootはできるだけ sudo mysql 経由の管理作業だけに使うのがおすすめです。

設定を反映(サービス再起動)

設定変更後にMySQLを再起動したい場合、最近のUbuntuは systemd で管理されているので、次のコマンドを使います。

sudo systemctl restart mysql
昔の記事で sudo mysql.server restart と書いていましたが、これはsystemd環境のUbuntuでは基本的に使いません。MySQLなら mysql、MariaDBを使っている場合はサービス名が mariadb になるので sudo systemctl restart mariadb に読み替えてください。

MySQL周りではこの他にも、WordPress用のデータベースを作る場面でrootログインを使います。そちらの流れは「Ubuntu 26.04 LTSにWordPressをインストールする手順」の記事にもまとめているので、あわせてどうぞ。

参考にした公式ドキュメント

PR
サーバー選びで迷っているなら ConoHa WING

私がこのブログで使っているレンタルサーバーです。公式が「サーバー処理速度 国内No.1」をうたうとおり表示が速く、初期費用は無料。WordPressの簡単セットアップも使えるので、検証用の環境をさっと用意したいときにも便利です。

ConoHa WINGを見てみる