106 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: 8.0 (reset)
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 …
[さらに読む]
ERROR 3546 (HY000): @@GLOBAL.GTID_PURGED cannot be changed には実は2種類ある

TL;DR

  • SET GLOBAL gtid_purged = '+?' のプラス付きの記法は、既存の gtid_executed と1つたりともカブってはいけない。
    • RESET MASTER ができず、既存の gtid_executed に足したい場合は差分を取って + 記号で足してやらないといけない
  • gtid_executed が空でない時に + 記号なしの SET GLOBAL gtid_purged = ? した時のエラーが5.7と8.0で変わってた

SET GLOBAL gtid_purged = ? した時に出ることがある ERROR 3546 (HY000): @@GLOBAL.GTID_PURGED cannot be changed, よく見たら実は3種類くらいあるっぽかった。

perror で調べてみると、確かに ERROR 3546 (HY000): @@GLOBAL.GTID_PURGED cannot be …

[さらに読む]
MySQL8.0における機能追加・変更リスト

MySQL8.0.11からMySQL8.0.31で気になった部分だけ新機能と変更点をまとめました。(約150位)
ただ、変更点が多く、全てを網羅出来てません。確認が必要な場合は適宜リリースノートやマニュアルを確認して下さい。Bugに関しては、必要に応じてbugs.mysql.comを確認するので今回はリリースノートでは追っていません。機能追加が多く、それに比例してBugも多いので。

確認した機能追加・変更点

MySQL8.0_NewFeature_and_Change-1

[さらに読む]
MySQLは実はWindowsのdatadirをそのままLinuxに持って行っても動く(8.0では一ひねり必要)

タイトルがすべて。

MySQL 5.7.39をWindowsでinitializeして起動。

PS > bin\mysqld --initialize-insecure
mysqld: Could not create or access the registry key needed for the MySQL application
to log to the Windows EventLog. Run the application with sufficient
privileges once to create the key, add the key manually, or turn off
logging for that application.

PS > bin\mysqld --console
mysqld: Could not create or access the registry key needed for the MySQL application
to log to the Windows EventLog. Run the application with sufficient
privileges once to create the key, add the key manually, or turn off
logging for that application.
2022-10-10T05:54:48.343808Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-10-10T05:54:48.343866Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data …
[さらに読む]
MySQL 8.0.30でもrpl_semi_sync_master_enabledとrpl_semi_sync_source_enabledは同じものではない

TL;DR

  • rpl_semi_sync_master_enabledsemisync_master.so 由来で rpl_semi_sync_source_eanbledsemisync_source.so 由来
    • 他のMaster/Source系と違って、MySQLサーバーの中で丸められているわけではなく、 INSTALL PLUGIN した時にどちらを入れたかに依存する

rpl_semi_sync_master_enabledrpl_semi_sync_source_eanbled (enabledに限らず、 rpl_semi_sync_*

[さらに読む]
MySQL on Windowsで8.0.20とそれ以降のmysqld.exeが--skip-grant-tablesでクラッシュすることがある

TL;DR

  • パラメーターの組み合わせを間違えた場合、本来Abortして起動しないもの(ここまでは意図的)がAbortの処理に失敗してクラッシュする
  • skip-grant-tablesしたい時はmy.iniに一緒にshared-memoryを書いてね!

MySQL 8.0では skip-grant-tables

[さらに読む]
106 件中 1 - 10 件を表示
次の 10 件 »