Appendix
Tips
マスターユーザーおよびお客様が追加で作成したユーザーで、UTC以外の特定のタイムゾーンを利用する方法
マスターユーザーおよびお客様が追加で作成したユーザーのタイムゾーンをMySQL接続時にAsia/Tokyoに設定する手順です。
ストアドプロシージャーを作成する。
MySQLにマスターユーザーにてログインし、下記コマンドでデータベースおよびストアドプロシージャを作成します。# ストアドプロシージャを紐付けるためのデータベース作成(名前はshared以外でも問題ありません) mysql> CREATE DATABASE shared Query OK, 1 row affected (0.01 sec) # デリミタを;から|に変更 mysql> DELIMITER | # ストアドプロシージャの作成 mysql> CREATE PROCEDURE shared.`store_time_zone`() -> IF NOT (POSITION('rdbadmin@' IN CURRENT_USER()) = 1) THEN -> SET SESSION time_zone = 'Asia/Tokyo'; -> END IF | Query OK, 0 row affected (0.01 sec) # デリミタを|から;に戻しておく mysql> DELIMITER ;接続してくる それぞれのユーザーに対して、ストアドプロシージャーの実行権限を付与します。
mysql> GRANT EXECUTE ON shared.* to ユーザー名@'%' identified by 'パスワード';ストアドプロシージャをinit_connectパラメーターに設定
新規にDBパラメーターグループを作成し、init_connectパラメーターに下記値を設定します。CALL shared.store_time_zoneタイムゾーンを変更したいDBサーバーに上記DBパラメーターグループを適用し、反映させるためにDBサーバーを再起動します。
1台のRDBにて、複数のデータベースを作成する
通常のデータベース作成と同じ手順で作成できます。
コントロールパネル上に表示されるDB名は、DBサーバー初期作成時に作成したデータベース名です。
- マスターユーザー、またはユーザーが用意した同等権限のアカウントでログインします。
- 利用中のデータベースエンジンに合わせたコマンドで、新たなデータベースを作成してください。
トラブル対応
MySQLへの接続がブロックされる
事象
下記エラーが出て、接続がブロックされる。$ mysql -h XXX.XXX.XXX.XXX -u mydbuser -p Enter password: ERROR 1129 (HY000): Host 'YYY.YYY.YYY.YYY' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'対処
DBパラメーターグループを利用して max_connect_errorsの値を1000程度に増やしてください。
接続ができたら、FLUSH HOSTS を実行するか、mysqladmin flush-hosts コマンドを実行し、接続エラー回数をリセットしてください。
対処完了後は、max_connect_errorsの値を元に戻してください。原因
以下の観点で確認してください。- DBファイアウォールグループのルールに不備を見つけたら、必ずDBファイアウォールグループでより厳しいアクセス許可を実施してください。
- DBファイアウォールグループですべてのアクセスを許可していないか
- DBサーバーのログに不正なアクセスによる接続エラーが頻発していないか
- その他、大量の接続エラーを発生させるアプリケーションの設定や、環境が存在しないか。
- DBファイアウォールグループのルールに不備を見つけたら、必ずDBファイアウォールグループでより厳しいアクセス許可を実施してください。
ポイントインタイムリカバリー・DBスナップショットからのDBサーバー作成に失敗する
- 事象
「ポイントインタイムリカバリー・DBスナップショットからのDBサーバー作成」によるサーバーステータスが「エラー」になり正常に終了しない。 - 対処
リカバリ元DBサーバーと同じパラメーターグループ、または同じパラメーターをもつパラメーターグループを適用してください。 - 原因
リストア元と異なるパラメーター設定になっていると、サーバーステータスが「エラー」になる可能性があります。
復元時に指定したパラメーターグループの設定を確認し、リストア元との差異を確認してください。
例えば、MySQLエンジンの場合、lower_case_table_namesの設定がリストア元と異なるとステータスがエラーになる可能性があります。
フィードバック
サービス利用中のトラブルは、サポート窓口にお願いします。
お役に立ちましたか?