Error: 6125 MySQL 8.4.0の非互換で親テーブルでUNIQUE KEYがついてないとForeign Keyが作れなくなった?
TL;DRFOREIGN KEY (col1, col2) REFERENCES table_name (col3, col4)の親側のカラムリスト、←で言うなら (col3, col4)がユニーク制約がかかっていないと外部キー制約が作れなくなった?親に (col3, col4, col5)のユニークキーがあってもダメ。きっちり一致しないといけない。親に (col3)のユニークキーがあれば...
View ArticleCREATE DATABASE/CREATE TABLEでCHARSETを指定してCOLLATEを指定しない
TL;DR@mita2さんのブログを見て、そういえばこんなのMySQL Server側にもあったなと思ったので書いてみたMySQL go-sql-driver/mysql ドライバで意図せず utf8mb4_0900_ai_ci が使われるケース - mita2 database lifeCREATE {DATABASE|TABLE}で CHARSETだけ指定して COLLATEを明示しないと...
View ArticleALTER TABLE .. Engine = InnoDBとOPTIMIZE TABLEは結局どう違うのか
TL;DRステートメントの権限評価が違う。 ALTER TABLEは GRANT ALTERが必要だが、 OPTIMIZE TABLEは GRANT SELECT,...
View Article21年の時を経てMySQL 3.23がCentOS7.9にインストールされるはなし
TL;DRMySQL 3.23.58(2003年9月リリース) をCentOS 7.9(2020年11月リリース)で起動できたSH2さんの MySQL Archives - dbstudy.infoに感謝日本MySQLユーザ会会(MyNA会) 2024年8月オフライン!...
View Article今更 素のCentOS7.9でGoを新しくせずにdlvを入れたい
古いところに新しいGoとか入れずにdlvだけ使いたかった。 $ cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) $ rpm -q golang golang-1.18.4-1.el7.x86_64 $ go version go version go1.18.4 linux/amd64...
View ArticlePercona XtraBackup 8.0.23 vs MySQL 8.0でバイナリログがパージされずに残り続ける
TL;DRXtraBackupは8.0.23で --lock-ddlがデフォルトでONになったPercona XtraBackup 8 Enables --lock-ddl by Defaultxtrabackup --lock-ddlは LOCK INSTANCE FOR BACKUPを呼び出すMySQL :: MySQL 8.0 Reference Manual :: 15.3.5 LOCK...
View Articleアカウント名を間違った時にも java.sql.SQLNonTransientConnectionException: Public Key...
TL;DRcaching_sha2_passwordで作られたアカウントに初回接続する時は useSSL=true または allowPublicKeyRetrieval=trueが必要日々の覚書: MySQL 8.0のcaching_sha2_password + 非SSL接続が転けるにもかかわらず、...
View ArticleConoHa VPSでMySQLをビルドする 2024年
この記事は ConoHa Advent Calendar 2024の4日目の記事で、 MySQL Advent Calendar 2024の4日目の記事です。ConoHa Advent Calendarの昨日の記事は narikakunさんの ConoHa VPSを使っておひとり様Misskeyサーバーを作る , MySQL Advent Calendarの昨日の記事は hmatsu47さんの 今年...
View ArticleとあるDBAのMySQL サンドボックス
この記事は MySQL Advent Calendar 2024の5日目の記事です。昨日は yoku0825さんの ConoHa VPSでMySQLをビルドする 2024年でした昨日の記事では新しくRocky Linux 9でMySQLをビルドするために新調したインスタンスでやっていましたが、普段使いのインスタンスはEOLを迎えたCentOS7です[ConoHa...
View ArticleMySQLのログと改行文字と個人の感想
この記事は MySQL Advent Calendar 2024の16日目の記事です。昨日の記事はまだ公開されていなさそうです。TL;DRMySQLのスローログ, ジェネラルログ, オプションによってはバイナリログも「実行されたクエリの改行文字まで全部記録する」ゆえに改行文字を挟まずに投げてもらった方がgreppabilityが良くてうれしいtail -fで見たい時以外は...
View ArticleBlackholeストレージエンジンとバイナリログと 2024
この記事は MySQL Advent Calendar 2024の20日目の記事です。昨日は asahideさんの Google Cloudでも使えるHeatWave MySQLでした。TL;DRbinlog_format=ROWで log_replica_updates=ON (MySQL 8.0とそれ以降のデフォルトのまま)ソースが BLACKHOLEストレージエンジンの場合は...
View Articlegh-ostの-postpone-cut-over-flag-fileみたいなことをpt-oscでもやりたい
この記事は MySQL Advent Calendar 2024の24日目の記事です。昨日は updraftさんの 今日は、MySQL 8.0.35で非推奨になった「SHOW PROCESSLIST」の代わりのパフォーマンススキーマを見てみるの日。 - 今日はなにの日。でした。最近、ALTER...
View Articletable_open_cacheに関する実験
TL;DRtable_open_cacheを増やすとメモリ使用量が増えるというのは聞いたことがあるけど実際どれくらい増えるのか調べてみたかった1コネクションで1つずつ SELECT * FROM...
View Articlevalidate_passwordコンポーネントを消さずにパスワードポリシーを満たさないパスワードを設定する
TL;DRCREATE USER .. IDENTIFIED WITH caching_sha2_password AS x'..'の形式で入れればMySQL側は元の文字列を知らないのでパスワードポリシーに引っかかることはない自分で建てたわけではないMySQLを使って遊んでいるところだけれど、 PMMを入れる時にちょっと簡単なパスワードを使いたいと思った。 mysql> CREATE USER...
View Article古いバージョンのxtrabackupをビルドしようとしたら -DDOWNLOAD_BOOST=1 だとダウンロードできなかった
TL;DRboostを同梱していないMySQLやxtrabackupでboostのダウンロードっぽいところでcmakeが転けていたら cmake/boost.cmakeを編集するとうまくいくことがあるboostorg.jfrog.io から archives.boost.io に変わってるっぽいyoku0825/xtrabackup-monkey-patchを使って XtraBackup...
View ArticleMySQL 8.0ではINT系のデータ幅表記をdeprecatedにした…けれども
TL;DRSHOW CREATE TABLEでも桁数の表記がなくなっているけれど TINYINT(1) SIGNEDの時だけは表示が tinyint(1)になるこれはドライバ(少なくともパッと思いつくのは Connector/J)との互換性のためらしいMySQL :: MySQL Connector/J Developer Guide :: 6.5 Java, JDBC, and MySQL...
View ArticleFLUSH TABLES WITH READ LOCK vs 実行中のクエリ
TL;DRFLUSH TABLES WITH READ LOCKは「今まさに実行中のクエリ」と競合するメタデータロックと違って「生きているトランザクション」ではなくて「今まさに実行中のクエリ」とだけWITH READ LOCKという名前ではあれど FLUSH TABLESなので SELECTとも競合するFLUSH TABLES WITH READ LOCKは先に全体に GLOBAL read...
View Articleslow_query_log / long_query_time / log_output でどれくらい違うかベンチマークその1
TL;DR特に何の結論もまだ出ていないベンチマークスローログをテーブルに吐かせるのって現実的かどうかを見たかっただけ--threads=3なのでもうちょっと並列性を上げないと本番向きではないジェネラルログファイル吐かせるのとスロークエリログ全部吐かせるのは同じくらい性能劣化するよなあと思ってた(どっちもmutexは1つしかないから)けどこれくらいだと差はよくわからないCSVストレージエンジン遅い…フ...
View ArticleHeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / 管理者権限
CHANGE REPLICATION SOURCE TOができないのでレプリカになれないしグループレプリケーションも自分で構築することはできない(そりゃそうだ)暗号化やAudit, Firewallを回避するようなのはダメ(そりゃそうだ)BINLOG_ADMINはないけど REPLICATION_APPLIERはあるので、 mysqlbinlogで吸い上げたバイナリログを適用することはできる...
View ArticleHeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / コマンド編
試したHeatWaveが9.2.2だったことに影響しているものもあるMySQL Shell util.dumpInstance使えるただしダンプする時に ocimds...
View ArticleHeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / performance_schema編
このへんからHeatWave MySQLが9.2から8.4のものに変わっている。全体として sar の代わりに使えそうなものがそろっている感じ。2a3 > component_scheduler_tasks 53a55,57 > health_block_device > health_process_memory > health_system_memory...
View ArticleHeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / 読み取りレプリカ編
WEB画面から作るレプリケーションの話。「読み取りレプリカ」を “MySQL.8.Standalone” で1つ追加ソースから観測ソースから見ると名前解決が有効になってるのでIPアドレスはわからない。skip_name_resolve はOFFで変えられない。mysql> SHOW PROCESSLIST; .. *************************** 4. row...
View ArticleHeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / 読み取りレプリカ編その2
日々の覚書: HeatWave MySQLがどれくらいVanilla MySQL GPL版と同じくらいか考える旅 / 読み取りレプリカ編 の続き。読み取りレプリカを1つ足してみた。ついでなので “MySQL.8.HA” にしてみたんだけれどこれは単に無視されるのかしら…(クラスタトータルのECPUも8ECPUしか増えなかったので、たぶんこれは関係なく1台だけ足されるんだと思う)mysql>...
View ArticleOracle Linux 8.10でのMySQL 9.3.0ビルド
MySQL Bugs: #117993: cmake failed MySQL 9.3.0 + Oracle Linux 8.10 で再現しなかったらしく、フレッシュインストールで試す。$ wget https://dev.mysql.com/get/Downloads/MySQL-9.3/mysql-9.3.0.tar.gz $ tar xf mysql-9.3.0.tar.gz $ cd...
View Article