🤍

migrate時に could not find driver ...って言われた。 Amazon Linux 2023 Laravel

2023/05/08に公開

環境大体整えてphp artisan migrateしたいって思ったのだけど、詰まってしまったので、メモします。
MySQLのドライバーであるphp-mysqlndをインストールしたかったのだけど、現状ある記事だとうまくいかなかった。

デプロイはこのサイトを参考にしています。

注意点

私自身初めてのAWS EC2でのデプロイなので、至らないところばかりかもしれません。間違っているところあればご指摘いただけますと幸いです。

Amazon Linux 2023について

既存の記事だとEPELやamazon-linux-extrasを使ってドライバをインストールしていたが、そのやり方だとうまくいかなかった。
RHEL向けの追加パッケージを提供するEPELレポジトリをAL2023ではサポートしていないらしい。Fedoraを中心として開発されているらしく、RHELやCentOS等とは少し使い勝手が変わっているみたい。

Fedora だとyumで書いているところをdnfに変えると大体のコマンドは動きそう。

開発環境

Amazon Linux 2023
Nginx 1.22.1
MySQL 8.0
Laravel 9
php 8.1

前提

laravel環境、php、mysqlがインストールされていること

エラー内容

 Illuminate\Database\QueryException

  could not find driver (Connection: mysql, SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:793
    789▕         // If an exception occurs when attempting to run a query, we'll format the error
    790▕         // message to include the bindings with SQL, which will make this exception a
    791▕         // lot more helpful to the developer instead of just the database's errors.
    792▕         catch (Exception $e) {
  ➜ 793▕             throw new QueryException(
    794▕                 $this->getName(), $query, $this->prepareBindings($bindings), $e
    795▕             );
    796▕         }
    797▕     }

解決策

 sudo dnf --disablerepo=\* --enablerepo='mysql*-community*' list available

からの

sudo dnf install php-mysqlnd

↓こんな感じになったら成功

Dependencies resolved.
==========================================================================================================================================================================================================
 Package                                          Architecture                             Version                                                    Repository                                     Size
==========================================================================================================================================================================================================
Installing:
 php8.1-mysqlnd                                   x86_64                                   8.1.16-1.amzn2023.0.1                                      amazonlinux                                   151 k

Transaction Summary
==========================================================================================================================================================================================================
Install  1 Package

Total download size: 151 k
Installed size: 437 k
Is this ok [y/N]: y
Downloading Packages:
php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64.rpm                                                                                                                           1.5 MB/s | 151 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                     880 kB/s | 151 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                  1/1
  Installing       : php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64                                                                                                                                      1/1
  Running scriptlet: php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64                                                                                                                                      1/1
  Verifying        : php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64                                                                                                                                      1/1

Installed:
  php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64

Complete!
php artisan migrate

でマイグレートできるはず。
インフラ周りもっと勉強しないとです。。

メモ

マイグレーション成功したものの、デプロイ後500エラーが出てサイトが見れなくなってしまったけど、Nginxのログを見るとすぐ解決できたので、エラー見る方法を記載しておきます!

sudo nano /var/log/nginx/error.log

ctrl + xで抜けれます。

参考URL

https://dev.mysql.com/doc/refman/8.0/ja/linux-installation-yum-repo.html
https://www.suzu6.net/posts/198-could-not-find-driver/
https://qiita.com/kazumawada/items/a78af229e1a46a4e80f2

Discussion