さくらVPSでLaravelアプリ

Laravelでサーバー側のDatabaseに接続する

さくらVPSにLaravelアプリケーションをつくろうとしています。

前回はLaravelのpublicフォルダをapacheのhttpd.confを修正してDocumentRootにすることができました。

LaravelのpublicフォルダをapacheのDocumentRootに設定|ゼロから始めるLaravel勉強会

今回はデータベースの接続を確認します。

ssh接続

サーバー側の方で確認します。

まずはターミナルで接続。

$ php artisan migrate

すると

   Illuminate\Database\QueryException

  SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table_schema = laraveldb and table_name = migrations and table_type = 'BASE TABLE')

このエラーが発生。

以前遭遇したエラーと同じような感じです。

ConoHaのLaravelテンプレートのartisan migrateでaccess denied|ゼロから始めるLaravel勉強会

$ systemctl stop mysqld
$ systemctl set-environment MYSQLD_OPTS="-skip-grant-tables"
$ systemctl start mysqld
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.

mysqlを立ち上げようとしたところ、エラーが発生。DBはmariadbを使っているのでそれが理由かも。

 "systemctl status mariadb.service" and "journalctl -xe" for details.

とでているので、

$ systemctl status mariadb.service

とみてみる。

07 17 13 55 08
mariadb.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
mariadb.service: Failed with result 'exit-code'

問題はここみたい。

go – What is wrong with my systemd service – Stack Overflow

mariadbのエラーを探す

mariadbのエラーログ・ファイルを調べる。

$ cd /etc/my.cnf.d

ここに mariadb-server.cnfがあるので、中身を確認。

log-error=/var/log/mariadb/mariadb.log


エラーログ・ファイルを発見。


2021-07-17 13:56:52 0 [ERROR] Plugin 'gssapi' init function returned error.
2021-07-17 13:56:52 0 [ERROR] /usr/libexec/mysqld: unknown option '-k'
2021-07-17 13:56:52 0 [ERROR] Aborting

mysqldのオプションはどこでやるんだ?

MySQL の unknown option エラーはオプションに loose- プレフィックスをつけると回避できる - かみぽわーる

このファイルで設定してるかも。
/etc/systemd/system
mysqld.service

07 17 14 22 23

これは、
usr/lib/systemd/system/mariadb.service
らしい。

$ systemctl set-environment MYSQLD_OPTS="-skip-grant-tables"

これを打った後にエラーがおこったので、MYSQLD_OPTSが怪しい。

07 17 14 26 52
 MYSQLD_OPTS here is for users to set in /etc/systemd/system/mariadb@.service.d/MY_SPECIAL.conf

このファイルをみてみる。

うーん

GSSAPIを確認

2021-07-17 13:56:52 0 [ERROR] mysqld: Server GSSAPI error (major 851968, minor 2529639093) : gss_acquire_cred failed -Unspecified GSS failure.  Minor code may provide more information. Keytab FILE:/etc/krb5.keytab is nonexistent or empty.
2021-07-17 13:56:52 0 [ERROR] Plugin 'gssapi' init function returned error.

gssapiについて確認。

mariadb — MariaDB:GSSAPIプラグインを無効にする

上記サイトから

/etc/my.cnf.d/auth_gssapi.cnf

まとめ

うーん。

いろいろ解決できそうにないので、まずは、さくらVPS側にLaravelをインストールして、DB接続できるか確認します。