ConoHaのLaravelテンプレートイメージを使ってアプリ開発を行うチュートリアルをやっています。
今回は、MySQLの設定です。
MySQL(MariaDB)の確認
ターミナルから一般ユーザー(nakachon)でログイン。
/var/wwwフォルダに移動
![www — ssh nakachon@150.95.154.147 — 115×24 2019-10-22 14-13-00.jpg Www ssh nakachon 150 95 154 147 115×24 2019 10 22 14 13 00](https://zero-lara.com/wp-content/uploads/2019/10/2312d011691a3660c61203f5433c0ea2.jpg)
$ mysql -u root -p
MySQLにログイン。
![www — ssh nakachon@150.95.154.147 — 115×24 2019-10-22 14-13-49.jpg Www ssh nakachon 150 95 154 147 115×24 2019 10 22 14 13 49](https://zero-lara.com/wp-content/uploads/2019/10/209871261301facdde8a9b28e666c8ca.jpg)
>show databases;
データベースを確認すると最初からtestというデータベースがあるようです。
![www — ssh nakachon@150.95.154.147 — 115×24 2019-10-22 14-14-43.jpg Www ssh nakachon 150 95 154 147 115×24 2019 10 22 14 14 43](https://zero-lara.com/wp-content/uploads/2019/10/a817a812b4b356e9169ef93e0b22f25e.jpg)
> use test;
testというDBを選択
> show tables;
testにどんなtableがあるか確認したところ、まだ空っぽのようです。なので、LaravelでもこのtableというDBを使うことにします。
Laravel .envを編集してデータベースを設定
![2019-10-22 14-17-03.jpg 2019 10 22 14 17 03](https://zero-lara.com/wp-content/uploads/2019/10/2019-10-22-14-17-03.jpg)
Laravelの.envファイルを編集して、DB_DATABASE、DB_USERNAME、DB_PASSWORDを編集。
ターミナルから
ターミナルでSSHログイン。/var/www/html/laravelのフォルダに移動。
データベーステーブルのマイグレーションファイルを生成します。
$ php artisan make:migration create_samples_table –create=samples
(-は2つです。)
![2019-10-22 14-28-20.jpg 2019 10 22 14 28 20](https://zero-lara.com/wp-content/uploads/2019/10/2019-10-22-14-28-20.jpg)
VS codeでdatabases/migrationsのフォルダにmigrationファイルができました。
$ php artisan migrate
マイグレーションを実行します。
![laravel — ssh nakachon@150.95.154.147 — 97×24 2019-10-22 14-30-47.jpg Laravel ssh nakachon 150 95 154 147 97×24 2019 10 22 14 30 47](https://zero-lara.com/wp-content/uploads/2019/10/22330a0760be330f85dcbdb2f240c5ce.jpg)
エラーが発生しました。ただ、Migration table created successfullyと表示されているので、DBのテーブルは作成されたようです。
ターミナルから、まずDBを確認します。
![laravel — ssh nakachon@150.95.154.147 — 97×24 2019-10-22 14-33-00.jpg Laravel ssh nakachon 150 95 154 147 97×24 2019 10 22 14 33 00](https://zero-lara.com/wp-content/uploads/2019/10/ada95ee7a61456a8e699f2fbd9a167cb.jpg)
testにあるtableを確認したところ、migrationsとusersという2つのテーブルが作成されていました。mysqlとの接続はうまくいったようです。
先程のエラーメッセージを確認します。
Syntax error or access violation: 1071 Specified key was too long
検索したところ下記のサイトを発見。
Laravel5.4以上、MySQL5.7.7未満 でusersテーブルのマイグレーションを実行すると Syntax error が発生する – Qiita
曰く、Laravel5.4以上、MySQL5.7.7未満でphp artisan migrateすると発生するエラーで、解決方法はMySQLのバージョンを最新にするのがベストとのこと。
![laravel — ssh nakachon@150.95.154.147 — 97×24 2019-10-22 14-38-03.jpg Laravel ssh nakachon 150 95 154 147 97×24 2019 10 22 14 38 03](https://zero-lara.com/wp-content/uploads/2019/10/3313d99af7631e358e187623680ebe03.jpg)
上記Qiitaの方も古い備忘録と書いていますが、ConoHaのLaravelイメージではMySQL(MariaDB)のバージョンが5.5.60なのでこの問題が発生しているっぽいです。
なので、MariaDBのアップデートが必要のようです。
* ConoHa運営さん、ぜひ、LaravelテンプレートのMariaDBもアップデートお願いします!
ConoHa LaravelテンプレートのMariaDBをアップデートする
MariaDBのアップデート方法について検索したところ、下記のサイトを発見。
yumでmysql(maria DB)を最新安定バージョンにアップデートする(Cent OS7) – Qiita
MariaDBレポジトリ情報の生成を下記のサイトからできる様子。
MariaDB – Setting up MariaDB Repositories – MariaDB
![MariaDB - Setting up MariaDB Repositories - MariaDB 2019-10-22 14-55-14.jpg MariaDB Setting up MariaDB Repositories MariaDB 2019 10 22 14 55 14](https://zero-lara.com/wp-content/uploads/2019/10/MariaDB-Setting-up-MariaDB-Repositories-MariaDB-2019-10-22-14-55-14.jpg)
でも、CentOSのバージョンとアーキテクチャを確認する必要があるようです。
再びターミナルにもどり以下のコマンドで確認。
![laravel — ssh nakachon@150.95.154.147 — 66×24 2019-10-22 14-56-42.jpg Laravel ssh nakachon 150 95 154 147 66×24 2019 10 22 14 56 42](https://zero-lara.com/wp-content/uploads/2019/10/e392c057b488c0af06ab246b938930cc.jpg)
結果、CentOS 7.6 x86_64だということがわかりました。
![MariaDB - Setting up MariaDB Repositories - MariaDB 2019-10-22 14-57-59.jpg MariaDB Setting up MariaDB Repositories MariaDB 2019 10 22 14 57 59](https://zero-lara.com/wp-content/uploads/2019/10/MariaDB-Setting-up-MariaDB-Repositories-MariaDB-2019-10-22-14-57-59.jpg)
これでレポジトリ情報が表示されます。
/etc/yum.repos.d/MariaDB.repoを確認。なければ新規作成
ここからはrootのほうがよさそうなので、suでrootになります。
$ vim /etc/yum.repos.d/MariaDB.repo
このレポジトリはなかったので新たに作成。先程のrepository generatorのサイトで表示された情報をコピペして保存。
![laravel — ssh nakachon@150.95.154.147 — 105×19 2019-10-22 15-03-51.jpg Laravel ssh nakachon 150 95 154 147 105×19 2019 10 22 15 03 51](https://zero-lara.com/wp-content/uploads/2019/10/a34008b71f1a90cc748dd02c2aca0472.jpg)
$ systemctl stop mariadb
mariadbを停止
$ systemctl status mariadb
ステータスを確認しました。
$ yum update MariaDB-server MariaDB-client
にて、アップデート。
[root@150-95-154-147 laravel]# yum update MariaDB-server MariaDB-client 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 7.2 kB 00:00:00 epel-debuginfo/x86_64/metalink | 7.3 kB 00:00:00 epel-source/x86_64/metalink | 7.1 kB 00:00:00 * base: ftp.iij.ad.jp * epel: ftp.riken.jp * epel-debuginfo: ftp.riken.jp * epel-source: ftp.riken.jp * extras: ftp.iij.ad.jp * remi-safe: ftp.riken.jp * updates: ftp.iij.ad.jp base | 3.6 kB 00:00:00 epel | 5.3 kB 00:00:00 epel-debuginfo | 3.0 kB 00:00:00 epel-source | 4.1 kB 00:00:00 extras | 2.9 kB 00:00:00 mariadb | 2.9 kB 00:00:00 remi-safe | 3.0 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/8): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (2/8): epel/x86_64/primary_db | 6.9 MB 00:00:00 (3/8): epel-source/x86_64/updateinfo | 1.0 MB 00:00:00 (4/8): epel-debuginfo/x86_64/primary_db | 905 kB 00:00:00 (5/8): epel-source/x86_64/primary_db | 2.4 MB 00:00:00 (6/8): remi-safe/primary_db | 1.6 MB 00:00:00 (7/8): updates/7/x86_64/primary_db | 2.8 MB 00:00:00 (8/8): mariadb/primary_db | 58 kB 00:00:01 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ MariaDB-client.x86_64 0:10.4.8-1.el7.centos を 非推奨 --> 依存性の処理をしています: MariaDB-common のパッケージ: MariaDB-client-10.4.8-1.el7.centos.x86_64 ---> パッケージ MariaDB-server.x86_64 0:10.4.8-1.el7.centos を 非推奨 --> 依存性の処理をしています: galera-4 のパッケージ: MariaDB-server-10.4.8-1.el7.centos.x86_64 ---> パッケージ mariadb.x86_64 1:5.5.60-1.el7_5 を 不要 ---> パッケージ mariadb-server.x86_64 1:5.5.60-1.el7_5 を 不要 --> トランザクションの確認を実行しています。 ---> パッケージ MariaDB-common.x86_64 0:10.4.8-1.el7.centos を インストール --> 依存性の処理をしています: MariaDB-compat のパッケージ: MariaDB-common-10.4.8-1.el7.centos.x86_64 ---> パッケージ galera-4.x86_64 0:26.4.2-1.rhel7.el7.centos を インストール --> 依存性の処理をしています: libboost_program_options.so.1.53.0()(64bit) のパッケージ: galera-4-26.4.2-1.rhel7.el7.centos.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ MariaDB-compat.x86_64 0:10.4.8-1.el7.centos を 非推奨 ---> パッケージ boost-program-options.x86_64 0:1.53.0-27.el7 を インストール ---> パッケージ mariadb-libs.x86_64 1:5.5.60-1.el7_5 を 不要 --> 依存性の処理をしています: mariadb-libs(x86-64) = 1:5.5.60-1.el7_5 のパッケージ: 1:mariadb-devel-5.5.60-1.el7_5.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ MariaDB-devel.x86_64 0:10.4.8-1.el7.centos を 非推奨 ---> パッケージ mariadb-devel.x86_64 1:5.5.60-1.el7_5 を 不要 --> 依存性解決を終了しました。 依存性を解決しました ========================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ========================================================================================================= インストール中: MariaDB-client x86_64 10.4.8-1.el7.centos mariadb 12 M mariadb.x86_64 1:5.5.60-1.el7_5 を入れ替えます MariaDB-compat x86_64 10.4.8-1.el7.centos mariadb 2.8 M mariadb-libs.x86_64 1:5.5.60-1.el7_5 を入れ替えます MariaDB-devel x86_64 10.4.8-1.el7.centos mariadb 7.5 M mariadb-devel.x86_64 1:5.5.60-1.el7_5 を入れ替えます MariaDB-server x86_64 10.4.8-1.el7.centos mariadb 26 M mariadb-server.x86_64 1:5.5.60-1.el7_5 を入れ替えます 依存性関連でのインストールをします: MariaDB-common x86_64 10.4.8-1.el7.centos mariadb 81 k boost-program-options x86_64 1.53.0-27.el7 base 156 k galera-4 x86_64 26.4.2-1.rhel7.el7.centos mariadb 9.4 M トランザクションの要約 ========================================================================================================= インストール 4 パッケージ (+3 個の依存関係のパッケージ) 総ダウンロード容量: 57 M Is this ok [y/d/N]: y Downloading packages: 警告: /var/cache/yum/x86_64/7/mariadb/packages/MariaDB-common-10.4.8-1.el7.centos.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 1bb943db: NOKEY MariaDB-common-10.4.8-1.el7.centos.x86_64.rpm の公開鍵がインストールされていません (1/7): MariaDB-common-10.4.8-1.el7.centos.x86_64.rpm | 81 kB 00:00:01 (2/7): MariaDB-compat-10.4.8-1.el7.centos.x86_64.rpm | 2.8 MB 00:00:04 (3/7): MariaDB-client-10.4.8-1.el7.centos.x86_64.rpm | 12 MB 00:00:07 (4/7): MariaDB-devel-10.4.8-1.el7.centos.x86_64.rpm | 7.5 MB 00:00:02 (5/7): boost-program-options-1.53.0-27.el7.x86_64.rpm | 156 kB 00:00:00 (6/7): galera-4-26.4.2-1.rhel7.el7.centos.x86_64.rpm | 9.4 MB 00:00:01 (7/7): MariaDB-server-10.4.8-1.el7.centos.x86_64.rpm | 26 MB 00:00:05 --------------------------------------------------------------------------------------------------------- 合計 4.4 MB/s | 57 MB 00:00:12 https://yum.mariadb.org/RPM-GPG-KEY-MariaDB から鍵を取得中です。 Importing GPG key 0x1BB943DB: Userid : "MariaDB Package Signing Key <package-signing-key@mariadb.org>" Fingerprint: 1993 69e5 404b d5fc 7d2f e43b cbcb 082a 1bb9 43db From : https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 上記の処理を行います。よろしいでしょうか? [y/N]y Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : MariaDB-compat-10.4.8-1.el7.centos.x86_64 1/11 インストール中 : MariaDB-common-10.4.8-1.el7.centos.x86_64 2/11 インストール中 : MariaDB-client-10.4.8-1.el7.centos.x86_64 3/11 インストール中 : boost-program-options-1.53.0-27.el7.x86_64 4/11 インストール中 : galera-4-26.4.2-1.rhel7.el7.centos.x86_64 5/11 インストール中 : MariaDB-server-10.4.8-1.el7.centos.x86_64 6/11 インストール中 : MariaDB-devel-10.4.8-1.el7.centos.x86_64 7/11 削除中 : 1:mariadb-devel-5.5.60-1.el7_5.x86_64 8/11 削除中 : 1:mariadb-server-5.5.60-1.el7_5.x86_64 9/11 warning: /var/log/mariadb/mariadb.log saved as /var/log/mariadb/mariadb.log.rpmsave 削除中 : 1:mariadb-5.5.60-1.el7_5.x86_64 10/11 削除中 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 11/11 検証中 : MariaDB-common-10.4.8-1.el7.centos.x86_64 1/11 検証中 : galera-4-26.4.2-1.rhel7.el7.centos.x86_64 2/11 検証中 : MariaDB-client-10.4.8-1.el7.centos.x86_64 3/11 検証中 : MariaDB-devel-10.4.8-1.el7.centos.x86_64 4/11 検証中 : MariaDB-compat-10.4.8-1.el7.centos.x86_64 5/11 検証中 : MariaDB-server-10.4.8-1.el7.centos.x86_64 6/11 検証中 : boost-program-options-1.53.0-27.el7.x86_64 7/11 検証中 : 1:mariadb-server-5.5.60-1.el7_5.x86_64 8/11 検証中 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 9/11 検証中 : 1:mariadb-5.5.60-1.el7_5.x86_64 10/11 検証中 : 1:mariadb-devel-5.5.60-1.el7_5.x86_64 11/11 インストール: MariaDB-client.x86_64 0:10.4.8-1.el7.centos MariaDB-compat.x86_64 0:10.4.8-1.el7.centos MariaDB-devel.x86_64 0:10.4.8-1.el7.centos MariaDB-server.x86_64 0:10.4.8-1.el7.centos 依存性関連をインストールしました: MariaDB-common.x86_64 0:10.4.8-1.el7.centos boost-program-options.x86_64 0:1.53.0-27.el7 galera-4.x86_64 0:26.4.2-1.rhel7.el7.centos 置換: mariadb.x86_64 1:5.5.60-1.el7_5 mariadb-devel.x86_64 1:5.5.60-1.el7_5 mariadb-libs.x86_64 1:5.5.60-1.el7_5 mariadb-server.x86_64 1:5.5.60-1.el7_5 完了しました!
無事にインストールできたようです。
ConoHaの管理画面からサーバーを再起動します。
MariaDBに接続できるか確認
再度、sshで接続して、
$ mysql
とターミナルで打ったところ
![nakachon — nakachon@150-95-154-147:~ — ssh nakachon@150.95.154.147 — 93×59 2019-10-22 15-11-07.jpg Nakachon nakachon 150 95 154 147 ~ ssh nakachon 150 95 154 147 93×59 2019 10 22 15 11 07](https://zero-lara.com/wp-content/uploads/2019/10/150694f37905315ba0d7caafad630326.jpg)
エラーが発生。
検索して下記のサイトを発見。
mysqlが起動できない(Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)) – Qiita
書かれているとおりまずは
$ sudo touch /tmp/mysql.sock
ファイルを作成
$ sudo mysql.server restart
mysqlを再起動しようとしたところ
![nakachon — nakachon@150-95-154-147:~ — ssh nakachon@150.95.154.147 — 93×59 2019-10-22 15-17-35.jpg Nakachon nakachon 150 95 154 147 ~ ssh nakachon 150 95 154 147 93×59 2019 10 22 15 17 35](https://zero-lara.com/wp-content/uploads/2019/10/6008163a62e90572bd7aa9d45e8d884d.jpg)
mysql.serverではないようです。
mariadbの起動方法をググると
こちらでかかれているとおり、
$ systemctl start mariadb
![nakachon — nakachon@150-95-154-147:~ — ssh nakachon@150.95.154.147 — 93×59 2019-10-22 15-19-20.jpg Nakachon nakachon 150 95 154 147 ~ ssh nakachon 150 95 154 147 93×59 2019 10 22 15 19 20](https://zero-lara.com/wp-content/uploads/2019/10/d06797dba34fbe56fd968c1488419626.jpg)
無事に起動しました。
MariaDBのバージョンも10.4.8となっています。
MariaDBの中身を確認
前回のDBがあるか確認します。
![nakachon — nakachon@150-95-154-147:~ — ssh nakachon@150.95.154.147 — 93×59 2019-10-22 15-22-03.jpg Nakachon nakachon 150 95 154 147 ~ ssh nakachon 150 95 154 147 93×59 2019 10 22 15 22 03](https://zero-lara.com/wp-content/uploads/2019/10/200f70336944d61fc2649b75eaabc502.jpg)
先程作成したtableがありました。
php artisan migrate:refresh
前回マイグレートしたときのusersテーブルは残っているものの、
$ php artisan migrate:refresh
で、テーブルの再構築もしてくれると思い、ターミナルから実行したところ、
![laravel — ssh nakachon@150.95.154.147 — 148×59 2019-10-22 15-30-14.jpg Laravel ssh nakachon 150 95 154 147 148×59 2019 10 22 15 30 14](https://zero-lara.com/wp-content/uploads/2019/10/d46a923b8038a74871d7398ef822b0e9.jpg)
usersテーブルがすでにあることでエラーになっている様子。これ、テーブルの削除はしてくれなかったかな?
とりあえず、 mysqlからusersテーブルを削除して、
$ php artisan migrate
を実行。
![laravel — ssh nakachon@150.95.154.147 — 148×59 2019-10-22 15-39-33.jpg Laravel ssh nakachon 150 95 154 147 148×59 2019 10 22 15 39 33](https://zero-lara.com/wp-content/uploads/2019/10/dfe42dcc870e5d508934fd5ad256caa3.jpg)
無事にtableが作成されました。
まとめ
今回、MySQLをアップデートし接続を確認できたので、これでようやくLaravelのアプリケーション(チュートリアル)の実装ができる様になりました。
次回からいよいよLaravelのコードを書いていきます。