1927 件中 221 - 230 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
MySQL で max_allowed_packet を超過した場合

MySQL で max_allowed_packet を超過した場合にどうなるんだっけ…と思って試してみた結果。

サーバーの max_allowed_packet をクエリが超過した場合

MySQL 5.6

サーバー起動

% docker run --name mysql56 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.6 --max-allowed-packet=100000

クライアントは原因がわからないけど切断される

% ruby -e 'puts "set @a="+"1"*1000000' | docker exec -i mysql56 mysql
ERROR 2006 (HY000) at line 1: MySQL server has gone away

サーバー側はログ出力なし

% docker logs mysql56
...

MySQL 5.7

サーバー起動

% docker run --name mysql57 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.7 --max-allowed-packet=100000

クライアントは原因がわからないけど切断される

% ruby -e 'puts "set @a="+"1"*1000000' | docker exec -i …
[さらに読む]
INSERT IGNORE INTOがNOT NULL DEFAULTを裏切る

とりあえず8.0.26で実験する。

INSERT IGNORE INTO といえば、キー重複エラーを握りつぶして複数のINSERTを「先勝ち」であるかのように振る舞わせるのに使われることが多いやつ。

mysql80 10> CREATE TABLE t2 (pk int PRIMARY KEY);
Query OK, 0 rows affected (0.02 sec)

mysql80 10> INSERT INTO t2 VALUES (1);
Query OK, 1 row affected (0.01 sec)

mysql80 10> INSERT INTO t2 VALUES (1);
ERROR 1062 (23000): Duplicate entry '1' for key 't2.PRIMARY'

mysql80 10> INSERT IGNORE INTO t2 VALUES (1);
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql80 10> SELECT * FROM t2;
+----+
| pk |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

あるいは、あたかも sql_mode= STRICT_TRANS_TABLES

[さらに読む]
今日は、Auroraでは味わえないMySQL 8.0のワクワク要素の日。

目次

[さらに読む]
innodb_strict_mode のセッション値を変更するのに必要な権限(from 8.0.26)

サクッと書けるネタだったので、久々に書きました。

リリースノートを読んでて気になった

MySQL8.0.26のリリースノートのServer Administrationの箇所にこうあった。

Setting the session value of the innodb_strict_mode system variable is now a restricted operation and the session user must have privileges sufficient to set restricted session variables.

For information about the privileges required to set restricted session variables, see System Variable Privileges. (Bug #32944980)

なになに、「システム変数 innodb_strict_mode のセッション値を設定することは、(より)制限された操作に変更され、セッション …

[さらに読む]
今日は、MySQLのマイナーバージョンアップのコンテナを準備の日。

目次

[さらに読む]
準同期レプリケーションで、でかいテーブルをDROP TABLEした時の死にポイント on 5.7.34

TL;DR

  • dict_sys のmutexを取るのでDDL系は死ぬし新しくテーブルキャッシュを作れないのでテーブルキャッシュが枯渇すると死ぬ
  • ROLLBACKdict_sys のmutexを取るので死ぬ。 COMMIT はできる。
  • 実はGroup Replicationまたは準同期レプリケーションを使っていると、更新系DMLの中に dict_sys を使う処理が追加されるのでこっちはいきなりDMLが刺さる。
  • 試したのは5.7.34だけ。他のバージョンの動作は知らない。
  • この動作は単純にunlink中のmutexの話なので、バッファプールの大小にはよらない。

まず、「でかいテーブルをDROP」のためにでっかいテーブルを作るのも大変なので、単純に unlink

[さらに読む]
MySQL 8.0 で謎のEXPLAIN結果が出なくなってた

時々、頭の中でMySQLの気持ちになって考えた実行計画と違うものが出力されるときがあるんですよね。 まぁ、実用上、問題になることはなかったので、「MySQL ヨクワカランなー」と思って、スルーしてました。

ところが、最近、MySQL 8.0 をいじってたら、イメージしている実行計画が表示されてることに気づきました。ワイワイ!

MySQL 5.7 の謎の Index Condition Pushdown 表示

今回のお題のテーブルはこちら(Employees Sample DBに 適当にカラム …

[さらに読む]
今日は、AWSでMySQL検証環境を最速構築の日。

目次

[さらに読む]
OSC2021 Online Hokkaido 参画

オープンソースカンファレンス北海道(オンライン)に参加してきました。event.ospn.jp オンラインイベントの良いところは、興味のある時間だけセミナーを聞いて、あとは日常生活を送れる点。 オフラインイベントの良いところは、会場にある意味物理的に拘束されてしまっているので、空いた時間に「少しだけ興味のある」セミナーを覗いたり、ブースで色々教えてもらえたりと、丸丸その時間全体をOSCでの吸収に当てられること。 個人的には、自分からご指名する程には興味はないのだけど何か面白そうなものに出会える場というのがOSCの本質だと思っているので、オンライン化の良い面は、私にとってのOSCとしては少し残念…

今日は、SHOW ENGINE INNODB STATUSについての日。

目次

[さらに読む]
1927 件中 221 - 230 件を表示
« 前の 10 件 | 次の 10 件 »