114 件中 81 - 90 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: 8.0 (reset)
MySQL 8.0は SELECT .. FOR UPDATE SKIP LOCKED とJSON_TABLES関数で「取り敢えずJSON」が捗る?

TL;DR

  • auto_increment + JSON型(あるいはBLOB型やTEXT型でもいいけど)に生のJSONを突っ込む
  • 後から SELECT .. FOR UPDATE SKIP LOCKED でワーカーが取り出して、 INSERT .. SELECT JSON_TABLE(..) FROM .. で正規化したテーブルに突っ込みなおす
  • 外部APIからの戻りのJSONを取り敢えずログテーブルに格納して…みたいな感じを想像している

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)

[さらに読む]
「危険な正規表現」 vs MySQL 8.0

他にもいくつかあると思うけれど、俺の一番のお気に入り(?)はこれ。 危険な正規表現 | 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の SHOW GRANTS の結果が想像したのとちょっと違う

MySQL 8.0.4にroot@localhostでログインして SHOW GRANTS を実行したらこうなった。

mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost | …
[さらに読む]
MySQL 8.0.4の正規表現で更に遊ぶ(REGEXP_SUBSTR, REGEXP_INSTR)

See also, 日々の覚書: MySQL 8.0.4でMySQLの正規表現演算がだいぶマシになる MySQL 8.0.4で新たに追加された関数として、 REGEXP_SUBSTRREGEXP_INSTR がある。 REGEXP_REPLACE もあるけどこれはいいや( mroonga_snippet 的なことができるかもなのでまた別で遊ぶかも) …

[さらに読む]
MySQL 8.0.4でMySQLの正規表現演算がだいぶマシになる


TL;DR

  • MySQL 5.7とそれ以前にも一応 REGEXP演算子 (またはRLIKE演算子)はあって、多少正規表現っぽいことはできるんだけど正規表現としては全然物足りなかった。
    • 少なくとも \s で空白文字にマッチできないとかちょっとPerlの正規表現で甘やかされた身にとってはつらい
    • しかも遅いんだこれが
    • あとマルチバイト非対応(マルチバイトに対して使おうと思ったことないけど)
  • MySQL 8.0.4とそれ以降ではICUの正規表現エンジンを使うことでかなーりマシに。

古くからこういう使い方はできた。
カラム名 REGEXP '正規表現文字列'

[さらに読む]
MySQL 8.0.4でエラーログのフォーマットが微妙に変わった

TL;DR

  • log_error_verbosity のデフォルトが3(Error + Warning + Note) から 2(Error + Warning)に変更されたよ
  • MySQL 8.0.4からエラーログのフィールドに error_id が追加されたよ
  • “Note”, “Warning”, “Error”の3つだった severity に “System”が追加されたよ
    • “System” は “Error” より強いレベルなので 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 …

[さらに読む]
MySQL 8.0.4におけるデフォルト認証形式の変更


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 is 何

プラグインディレクトリーを覗いてたら 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 の近くにありそう。

[さらに読む]
MySQL 8.0.0で予約語だったROLEが8.0.1ではキーワードになっていたはなし

TL;DR

  • hmatsu47 さんに MySQLのキーワードと予約語 の中で「ROLEは予約語じゃなくてキーワード」と教えてもらった
  • 予約語とキーワードの違いは、 role_or_ident_keyword にリストされているかどうか? (ちなみに5.7だと単に keyword ってリストになってる)

シンボルのリスト

[さらに読む]
MySQL 8.0.2以降ではundoテーブルスペースファイルを勝手に拡張してくれるみたい

MySQL 5.7で InnoDB UNDO Log Truncation が追加されたものの、 innodb_undo_tablespacesmysqld --initialize の時に既に指定されていないといけなくて、一度ibdata1が初期化されてしまうと二度と変更できないという制約がありました。 こんなログが出て起動に失敗したりとか失敗したりとか失敗したりとか

2017-07-19T16:00:43.739980+09:00 0 [ERROR] InnoDB: Expected to open 2 undo tablespaces but was able to find only 0 undo tablespaces. Set the innodb_undo_tablespaces parameter to the correct value and retry. Suggested value is 0

ところで、 MySQL …

[さらに読む]
114 件中 81 - 90 件を表示
« 前の 10 件 | 次の 10 件 »