laravel + mariadb 10.x 設定


レポジトリ

https://mariadb.com/downloads/#aptyum
より

# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

Mariadbインストール

インストール
# yum install MariaDB-server MariaDB-client
サービス起動
# systemctl start mariadb
初期起動設定
# systemctl enable mariadb
初期設定
# mysql_secure_installation 

UTF-8

初期はlatin1になっているのでutf-8に変更。
vi /etc/my.conf.d/server.conf

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

再起動
systemctl restart mariadb

タイムゾーンの設定

MySQLでタイムゾーンを設定する
こちらを参考に設定した

laravelの文字コード

初期設定はutf8mb4という絵文字対応の文字コードになっているため
そのままphp artisan migrateすると文字コードがおかしくなる。

config/database.php
        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
※ここを変更する
            'charset' => 'utf8',
※ここを変更する
            'collation' => 'utf8_general_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],