LoginSignup
1
1

More than 5 years have passed since last update.

Amazon Lightsail へ移行してみた (MySQL観点)

Last updated at Posted at 2019-06-01

導入

 去年Webページ構築用にAWSで作った無料アカウント期間が終わるので、どうしようか考えた結果、そのままEC2インスタンスを残すのではなく、月額3.5ドルから160ドルまで選べるLightsailへ引っ越すことにしました。マンガに描かれている通り、確かに速い!

以下はインスタンス作成画面の抜粋

 移行前から LAMP(PHP 7) を利用していたので、こちらを選択しインスタンスを作成。
image.png
image.png

LightsailにおけるMySQL

 MySQLもすぐさま使える状況になっています。とりあえず、元環境からmysqldumpを使ってDBレベルで情報を引っこ抜き、Lightsail環境へ突っ込んでみます。ちなみに、元環境のバージョンは 5.6.43、Lightsail環境は 5.7.25 でした。(Lightsail環境のLinux/Unix OSは Ubuntu 16.04.6 LTS でした。)

 Webページの挙動は概ね問題無し。ただ、1点気になることがあり、
 どうも、表の名前の大文字小文字が無視される様になっています。

MySQL 5.7 Reference Manual - 9.2.2 Identifier Case Sensitivity

On Unix, the default value of lower_case_table_names is 0.
On Windows, the default value is 1. On macOS, the default value is 2.

にもかかわらず、実際は以下の通りでした。

mysql
mysql> show variables where variable_name='lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.02 sec)

不思議に思いながら、設定変更してMySQLを再起動しようとしたところで、ハタと気づきます。
/etc/init.d に mysqld が居ないぞ?

更に、普段通りDBへ xmlファイルをロードしようとした際に以下のエラーが出力され、

ERROR 1290 (HY000) at line 1: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

LOAD XML INFILE構文の"INFILE"の手前に"LOCAL"を差し込むと解決したところで、
こう考える様になりました。さてはお前クライアントだな?

おそらく、Lightsail用に汎用MySQLサーバーが別にあるのでしょう。
だから lower_case_table_names も 1 にしているんだろーなー、と納得するようにしました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1