

毎度お騒がせします。今回もよろしくお願いします。

現在 Laravel をさくら VPS にデプロイをし、起動を試みたところ、

[code]

    SQLSTATE[HY000] [2002] Connection refused (SQL: select count(*) as aggregate
    
[/code]

と表示されたので MySQL に接続されていないとわかったので  
以下コマンドで MySQL を再起動したところ以下のエラーが表示されました。

[code]

    $ sudo service mysqld restart
    
    Job for mysqld.service failed because the control process exited with error code.
    See "systemctl status mysqld.service" and "journalctl -xe" for details
    
[/code]

ネットで調べると権限周りの問題じゃないかという意見が散見されました。  
パーミションに関して、身に覚えが合ったのでログを確認しますと以下が出力されていました。

/var/log/mysqld.log

[code]

    2021-06-04T16:52:24.795768Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_3.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795778Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_4.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795787Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_5.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795796Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_6.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795805Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_7.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795815Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_8.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795827Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_9.ibt' permission error, can't delete!
    2021-06-04T16:52:24.795838Z 0 [Warning] [MY-012573] [InnoDB] './#innodb_temp/temp_10.ibt' permission error, can't delete!
    2021-06-04T16:52:24.811659Z 0 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation.
    2021-06-04T16:52:24.811716Z 0 [ERROR] [MY-012595] [InnoDB] The error means mysqld does not have the access rights to the directory.
    2021-06-04T16:52:24.819156Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.25)  MySQL Community Server - GPL.
    
[/code]

権限周りの問題でシャットダウンされたとログに書かれています。思い当たる節としては、Laravel
のアクセスキーを発行するためにパーミッションを変更した際に影響したのかなと思いました。  
パーミションを変更する前はきちんと接続もできてinsertもでき動作確認が取れました。  
エラーが吐かれている日時を確認しても、insertの動作ができた後なので、パーミッション変更だとあたりをつけました。  
以下のパーミッションを変更しました。

[code]

    drwxr-xr-x  2 root   users    40 Jun  5 04:12 mysqld
    
[/code]

権限変更,実行

[code]

    chown -R mysql:mysql /var/run/mysqld
    $ sudo service mysqld start
    Redirecting to /bin/systemctl start mysqld.service
    Job for mysqld.service failed because the control process exited with error code
    
[/code]

しかし、権限を変えるもエラーは変わらず、、

おおよその時系列的には

  * 2022/6/3 24:00くらい  
index.phpからmysqlに接続できるか確認。→データベース、テーブルに接続ができ、insertも実行可能

  * 2022/6/3 24:30 くらい  
ララベルのプロジェクトを起動させるために.envファイルを修正。  
`php artisan migrate` 実行するとサクセスフリーで成功。  
`php artisan key:generate` するも.envファイルがパーミッション拒否されるのでアクセスできるように/var/www/html
のパーミッションを変更

  * 2022/6/4の夕方頃  
mysqld.logにエラーが吐かれる

ネットで調べてできる限りのことはしましたが解決することはできませんでした、、  
何かアドバイスしていただければ幸いです。


CC BY-SA 4.0
2021-06-05T03:15:23.317
77346
2021-06-07T10:03:49.880
2021-06-05T07:37:28.070
3060
43365
question
mysql centos
MySQL を起動することができない


`datadir` のディレクトリのパーミッションを確認してみるのがいいと思います。

実際のディレクトリ名は `mysqld --help -v | grep datadir` でわかると思います。


CC BY-SA 4.0
2021-06-07T10:03:49.880
77383
2021-06-07T10:03:49.880
3249
77346
answer