110 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: 8.0 (reset)
GRANTでデータベース名にワイルドカードを指定することとpartial revokesと

TL;DR

  • partial_revokes が有効な状態だと GRANT ALL ON 'd%'.* TO .. みたいなデータベースワイルドカードの構文が効かない
In privilege assignments, enabling partial_revokes causes MySQL to interpret occurrences of unescaped _ and % SQL wildcard characters in schema names as literal characters, just as if they had been escaped as \_ and \%. Because this changes how MySQL interprets privileges, it may be advisable to avoid unescaped wildcard characters in privilege assignments for installations where partial_revokes may be enabled.

In addition, use of _ and % as wildcard characters in grants is deprecated as of MySQL 8.0.35, and you should expect support for them to be removed in a future version of MySQL.

[さらに読む]
MySQL 8.0.35で旧McAfeeのmysql-auditをビルドしてみる

【2023/11/21 15:58】タイトルが8.0.32だったけど8.0.35でした…TL;DR

  • ビルドしてみただけ。動作確認はしていない

  • MySQL 8.0.35はあらかじめビルドしてある

そのまま素直にビルドできなくなっているのでパッチを3つ用意した

[さらに読む]
SHOW PROCESSLISTとinformation_schema.processlistとperformance_schema.processlistと

TL;DR

呼び出し元 エントリーポイント リスト関数
SHOW PROCESSLIST (option=OFF) mysqld_list_processes Global_THD_manager::do_for_all_thd_copy
information_schema.processlist fill_schema_processlist Global_THD_manager::do_for_all_thd_copy
performance_schema.processlist table_processlist::make_row table_processlist::read_row_values
SHOW PROCESSLIST (option=ON) table_processlist::make_row table_processlist::read_row_values
  • Global_THD_manager::do_for_all_thd_copy は …
[さらに読む]
ソースビルドのmysqldでthdがgdbで掴めない (MINIMAL_RELWITHDEBINFO=ON)

TL;DR

  • 8.0.29とそれ以降でソースビルドをしてる人だけだと思う
  • cmake する時に -DMINIMAL_RELWITHDEBINFO=OFF する

gdbでmysqldにアタッチした時に色々見つからなくて困った。thdとか全然見えない。

$ gdb -p $(pidof mysqld)
(gdb) b PT_show_processlist::make_cmd
+b PT_show_processlist::make_cmd
Breakpoint 1 at 0x122eaec: file /home/yoku0825/mysql-8.0.35/sql/parse_tree_nodes.cc, line 2722.
(gdb) c
+c
Continuing.
[Switching to Thread 0x7fe5dc2e9700 (LWP 13041)]

Breakpoint 1, PT_show_processlist::make_cmd () at /home/yoku0825/mysql-8.0.35/sql/parse_tree_nodes.cc:2722
2722  lex->sql_command = m_sql_command;
(gdb) n
+n
2725  bool use_pfs = pfs_processlist_enabled;
(gdb) n
+n
2727  m_sql_cmd.set_use_pfs(use_pfs);
(gdb) p use_pfs
+p use_pfs
No symbol "use_pfs" in current context.
(gdb) n
+n
2728  if (use_pfs) {
(gdb) p use_pfs …
[さらに読む]
gtid_mode=OFFの移行元MySQLからGroupReplicationにマイグレーションするはなし
  • origin側はgtid_mode=OFF, binlog_format=MIXEDでこれを変えてはいけない
  • MySQLはこのケースに限り 8.0.28 以外でも良い
  • メンテナンスには入れられる。ただし、メンテナンスウィンドウ内でMyDumperをかけられるほどデータは小さくない
  • なおGroupReplication ≠ InnoDB Clusterとした。つまりMySQL Shellの支援とMySQL Routerプロセスは使わない
  • シングルプライマリーモード。MySQL Routerは使わないけど到達性の問題は 俺以外の誰か が何とかするものとする(実際、何とかしてくれた)

[さらに読む]
MySQL 8.0.32にデフォルトコレーションをutf8mb4_general_ciにするパッチを当てる

地味にgrepから始める。

$ grep -r 'utf8mb4_0900_ai_ci' | grep -v mysql-test | grep -v scripts/fill_help_tables.sql | grep -v gunit

client/mysqltest.cc:    &my_charset_utf8mb4_0900_ai_ci; /* Default charset */
cmake/character_sets.cmake:  SET(DEFAULT_COLLATION "utf8mb4_0900_ai_ci")
include/m_ctype.h:extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_ai_ci;
man/myisamchk.1:Character set:       utf8mb4_0900_ai_ci (255)
mysys/charset-def.cc:extern CHARSET_INFO my_charset_utf8mb4_0900_ai_ci;
mysys/charset-def.cc:  add_compiled_collation(&my_charset_utf8mb4_0900_ai_ci);
plugin/x/src/mysql_variables.cc:  return &my_charset_utf8mb4_0900_ai_ci;
router/src/routing/src/sql_lexer.cc:            if (underscore_cs == &my_charset_utf8mb4_0900_ai_ci) {
router/src/routing/src/sql_lexer_thd.h:        &my_charset_utf8mb4_0900_ai_ci};
share/messages_to_clients.txt:  eng "Invalid default collation %s: utf8mb4_0900_ai_ci or utf8mb4_general_ci …
[さらに読む]
MySQL 8.0で導入された動的権限を利用してたけのこ派にCOUNTを使えなくする

TL;DR

  • 今日は2023年4月1日ですし、私はたけのこ派です

動的権限とは、MySQL 8.0で加わった「 mysql.user やその他のテーブルに独自のカラムを持た ない タイプの権限」のことらしい。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 6.2.2 MySQL で提供される権限

↓このへんが「静的権限」で

mysql> DESC mysql.user;
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                    | Type                              | Null | Key | Default               | Extra |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                     | char(255) …
[さらに読む]
MySQL 8.0ならGTIDのスキップはもっと簡単になる

TL;DR

とはいえそもそもSQL Threadが止まってイベントをスキップしなければならないような事態になったら、レプリカを真っ新に作り直した方が良いというのは相変わらず思っている。
MySQL 8.0ならCloneプラグインもあるしね。

[さらに読む]
Foeign Key制約によって暗黙に作成されたINDEX or NOT

TL;DR

(num, val) を持ったテーブルが2つ、numはどちらでもPKE、valはt1でだけUNIQUE KEY。

mysql80 46> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `num` bigint unsigned NOT NULL AUTO_INCREMENT,
  `val` varchar(32) DEFAULT NULL,
  UNIQUE KEY `num` (`num`),
  UNIQUE KEY `val` (`val`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 …
[さらに読む]
テンポラリーテーブルがストレージを埋め尽くした時のエラー番号の違い on MySQL 8.0.32

TL;DR

  • TempTableストレージエンジンがDisk落ちした時とInnoDB Temporary tableで「同じストレージあふれ」でも微妙にエラー内容が違う

    • 前者は ERROR 14 (HY000): Can't change size of file (OS errno 28 - No space left on device) , エラーログ出力なし

    • 後者は ERROR 1114 (HY000): The table '#sqlXXXXX' is full でエラーログ出力もあり

    • ちなみにMyISAMは ERROR 126 (HY000): Incorrect key file for table '/mytmp/#sqlXXXXX.MYI'; try to repair it 、これ少なくとも5.7からは変わってない

実験用に100MBくらいのファイルにxfsを作ってマウントする。


$ dd …
[さらに読む]
110 件中 1 - 10 件を表示
次の 10 件 »