TL;DR
- バイナリーログの自動パージ期間を設定する expire_logs_days はMySQL 8.0では非推奨
- 代わりに binlog_expire_logs_seconds を設定する
MySQL 8.0.1 で導入された binlog_expire_logs_seconds 当初は expire_logs_days と 足し合わせる …
[さらに読む]TL;DR
MySQL 8.0.1 で導入された binlog_expire_logs_seconds 当初は expire_logs_days と 足し合わせる …
[さらに読む]TL;DR
単なる連番のテストデータを作りたい時とか、再帰CTEは便利(というかMySQLerは今まで再帰CTEが使えなかったので、そもそもそれ以外の使い方は思いつかないわけだが)だけれど、 ↓ を訳した時点ではWHERE句を間違えるとさっくりとクエリーが逝きっぱなしになっていた。 MySQL 8.0 Lab版: MySQLの (再帰)共通テーブル式(CTE) | Yakst それが、MySQL 8.0.3から cte_max_recursion_depth …
[さらに読む]TL;DR
SELECT .. FOR UPDATE SKIP LOCKED
でワーカーが取り出して、 INSERT .. SELECT JSON_TABLE(..) FROM ..
で正規化したテーブルに突っ込みなおす
PoC こんなテーブルを用意した。
mysql80 13> SHOW CREATE TABLE t2\G
*************************** 1. row ***************************
Table: t2
Create Table: CREATE TABLE `t2` (
`seq` int(10) unsigned NOT NULL AUTO_INCREMENT,
`raw_json` json DEFAULT NULL,
PRIMARY KEY (`seq`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ja_0900_as_cs
1 row in set (0.00 sec)
…
[さらに読む]他にもいくつかあると思うけれど、俺の一番のお気に入り(?)はこれ。 危険な正規表現 | MOYO Laboratory (.*)*^ 試してみよう。
mysql80 15> SELECT * FROM t1 LIMIT 3;
+-------------+---------------------+------------------------------------------------------------+--------------------------------------------------------------------+
| tweet_id | timestamp | source | text |
+-------------+---------------------+------------------------------------------------------------+--------------------------------------------------------------------+
| 22431873995 | 2010-08-29 09:00:00 | <a href="http://twicca.r246.jp/" rel="nofollow">twicca</a> | 明日一年ぶり夜勤。 …
[さらに読む]
MySQL 8.0.4にroot@localhostでログインして SHOW GRANTS
を実行したらこうなった。
mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost | …
[さらに読む]
See also, 日々の覚書: MySQL 8.0.4でMySQLの正規表現演算がだいぶマシになる MySQL 8.0.4で新たに追加された関数として、 REGEXP_SUBSTR と REGEXP_INSTR がある。 REGEXP_REPLACE もあるけどこれはいいや( mroonga_snippet 的なことができるかもなのでまた別で遊ぶかも) …
[さらに読む]TL;DR
error_id
が追加されたよ
severity
に
“System”が追加されたよ
log_error_verbosity
が1(最小値)でも出力される
2018-01-25T01:22:56.821986Z 0 [System] [MY-010116] /usr/mysql/8.0.4/bin/mysqld (mysqld 8.0.4-rc) starting as process 9206 ...
Messages written to the error log by the log_sink_internal log …
[さらに読む]
Incompatible Change: The caching_sha2_password and
sha256_password authentication plugins provide more secure
password encryption than the mysql_native_password plugin, and
caching_sha2_password provides better performance than
sha256_password. Due to these superior security and performance
characteristics of caching_sha2_password, it is now the preferred
authentication plugin, and is also the default authentication
plugin rather than mysql_native_password. This change affects
both the server and the libmysqlclient client library: MySQL :: MySQL 8.0 Release Notes :: Changes in
MySQL 8.0.4 (2018-01-23, Release Candidate)
MySQLはそれぞれのアカウントが「どうやって認証されるべきか」をアカウント情報の中に持っている(5.6とそれ以降)
mysql.user
テーブルには plugin
…
プラグインディレクトリーを覗いてたら pfs_example_plugin_employee.so
なるファイルがあって知らないものなので調べてみた。 知らないプラグインを見つけた時の身元調査用に使えるかも知れないのでメモ。
まずはビルドしたディレクトリーの中で find
、MySQL(に限らないのかもだけど)ではコンパイルした時にソースコードのすぐとなりにバイナリーが出来上がるので、変に名前の一部からディレクトリーの名前を類推するよりもこっちの方が楽だったりする。
$ find -name "pfs_example_plugin_employee.so"
./plugin/pfs_table_plugin/CMakeFiles/CMakeRelink.dir/pfs_example_plugin_employee.so
./plugin_output_directory/pfs_example_plugin_employee.so
という訳でソースは plugin/pfs_table_plugin
の近くにありそう。
…[さらに読む]