📝 備忘録

学んだことを記録しています。アウトアップの単位は小さくしています。

  1. トップページ
  2. 備忘録
  3. NextCloud のインストールで躓いた

NextCloud のインストールで躓いた

blog

自宅サーバーに NextCloud をインストールしたのですが、 初回セットアップ時に必ず必要となる管理者アカウント作成で躓いてしまったので解決方法を記録しておきます。

症状

  • インストールボタンをクリックした際、エラー文が出力される。
  • 認証情報に誤りはなく、mysqlコマンドや、PHPの mysqli ではログインに成功する

エラーの内容

MySQLのユーザー名またはパスワードが有効ではありません
既存のアカウントの詳細を入力してください。

原因の調査

何かしらのログが残っていそうなのでまずは確認してみます。 NextCloud内のディレクトリにログが保存されているので確認してみます。

{NEXT_CLOUD_DIR}/data/nextcloud.log

わたしの環境下ではパーミションが640だったため、そのままでは閲覧できませんでした。chmodで読み込めるようにします。

sudo chmod 644 nextcloud.log

これで読み込めるようなりました。サーバーからログをダウンロードして調査したところ、それらしい行を発見しました。

{
    ...
    "message":"Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1044] Access denied for user 'oc_ユーザー名'@'localhost' to database 'mysql'",
    "exception":{},
    "CustomMessage":"Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1044] Access denied for user 'oc_ユーザー名'@'localhost' to database 'mysql'"
}

データベースの接続に失敗しているようですが、oc_ユーザー名という作成した覚えのないユーザーでログインしようとしています。このユーザーについてより詳しく調査してみます。

mysqlで現在作成済みのユーザーを表示してみます。

$sudo mysql
mysql> select user, host from mysql.user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| oc_ユーザー名      | localhost |
| oc_ユーザー名      | %         |
| oc_ユーザー名1     | localhost |
| oc_ユーザー名1     | %         |
+------------------+-----------+

ログの内容通り、oc_ユーザー名 という作成した覚えのないユーザーが大量に(数十個)も追加されていました。

どのような設定で作成されたのか不明なため、とりあえず削除します。

mysql> drop user 'oc_ユーザー名'@'localhost';
Query OK, 0 rows affected (0.04 sec)

mysql> drop user 'oc_ユーザー名'@'%';
Query OK, 0 rows affected (0.04 sec)

MySQL の認証関係が原因だと推測できますが、知識不足のため原因の特定には至りませんでした。

解決方法

いろいろ試したところ、権限が強いユーザーで接続したのが原因でした。

公式ドキュメント通りにユーザーを作成し、NextCloud用のテーブルだけを操作できるように権限を与えるとインストールに成功しました。

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

Example installation on Ubuntu 22.04 LTS — Nextcloud latest Administration Manual latest documentation

一応解決自体はしましたが、はっきりとした原因が解明できていないのはモヤモヤします。

後日より詳しく調査を行い、記事として投稿したいと思います。

カテゴリ: NextCloud