アイコンはイルカ。
公式イメージ: https://hub.docker.com/_/mysql
MySQL 5.1ぐらいからデフォルトのストレージエンジンになった。
MySQL 5.7からシステムテーブルでも使われるようになった。
https://dev.mysql.com/doc/refman/8.0/en/option-file-options.html
サーバ、クライアント両対応のオプションっぽい。
Option | 機能 |
---|---|
--defaults-file | my.cnfなどの設定ファイル。これを指定すると一部の例外を除き他の設定ファイルを読まなくなる |
--defaults-extra-file | my.cnfなどの設定ファイル。グローバルオプションファイルを読んだ後、ログインパスのファイルを読む前に読み込まれる |
NOTE:
--defaults-file
等のオプションは他のオプションハンドリングにも関わるから、他のオプションよりも前に指定しないといけない、とドキュメントに書かれているBecause these options affect option-file handling, they must be given on the command line and not in an option file. To work properly, each of these options must be given before other options, with these exceptions:
ドキュメント:
キーワード:
SQLでの確認方法:
-- charset
show variables like 'chara%';
-- collation
show variables like 'collation%';
いくつか設定方法がある:
my.cnf
での指定SET NAMES '<charset>' [COLLATE '<collation>']
<- 基本、これでよさそうhttps://dev.mysql.com/doc/refman/8.0/en/sql-mode.html
サーバのSQLモード。
NO_ZERO_DATE
… 0000-00-00
を日付として許可しない。https://dev.mysql.com/doc/refman/8.0/en/grant.html
GRANT文やREVOKE文で指定できる権限。
権限 | 付与可能レベル | 意味 |
---|---|---|
PROCESS | グローバル | ユーザーが SHOW PROCESSLIST を使用してすべてのプロセスを表示できるようにする |
https://dev.mysql.com/doc/refman/5.6/ja/information-schema.html
メタデータDB
https://dev.mysql.com/doc/refman/5.6/ja/information-schema-columns-table.html
MySQL 5.5 or MySQL 5.1 with InnoDB Pluginで、CREATE/DROP INDEX時にテーブルコピーを行わないように最適化された。
これは高速インデックス作成と呼ばれた。
5.6では更に多くのALTER TABLE操作をテーブルコピーなしでできるようになってる。
RENAME TABLE prev_database.t TO new_databaes.t;
参考: How to Rename a Database in MySQL | Chartio
MySQL5.6以降の場合、Slave側で以下を実行:
CHANGE MASTER TO MASTER_DELAY = N; -- Nは正の整数
参考:
SQLで変更する場合:
-- SUPER権限があれば、サーバグローバルの設定を変えることができる
-- 稼働中のシステムで実行する場合は最大の注意が必要
SET GLOBAL time_zone = <timezone>;
-- クライアントはセッションごとにタイムゾーン設定を変更できる
SET time_zone = <timezone>;
参考:
色々パラメータがあって混乱しがちなのでまとめたい。
See https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html
参考:
See https://dev.mysql.com/doc/refman/5.6/ja/mysql-options.html
PerlやRubyのクライアントではよく connect_timeout
, read_timeout
といった接続時のオプションになっている。
参考:
MySQL :: MySQL Product Support EOL Announcements
参考:
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-21.html
PROCESS
権限が必要に(または --no-tablespaces
オプション指定)https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-16.html
参考: