From a1488da2d819d2965d45a14d037e0f7c57ffc362 Mon Sep 17 00:00:00 2001 From: hoelee Date: Sun, 20 Sep 2026 04:18:11 +0800 Subject: [PATCH] Add post: When Your Database Client Lies to You (Workbench 26 / MariaDB) EN + ZH devops gotcha post on debugging MySQL Workbench 26.7.0's failure to connect to MariaDB. Three patches to Oracle's bundled code, all the same root cause: `major >= 8` is not a valid MySQL-vs-MariaDB test. Also adds per-post OG + banner (TERMINALS/BANNERS entries). --- .../patching-workbench-26-for-mariadb.png | Bin 0 -> 98813 bytes .../og/patching-workbench-26-for-mariadb.png | Bin 0 -> 47439 bytes scripts/banner-gen/generate.mjs | 20 ++ scripts/og-gen/generate.mjs | 6 + .../patching-workbench-26-for-mariadb.md | 299 ++++++++++++++++++ .../zh/patching-workbench-26-for-mariadb.md | 299 ++++++++++++++++++ 6 files changed, 624 insertions(+) create mode 100644 public/banners/patching-workbench-26-for-mariadb.png create mode 100644 public/og/patching-workbench-26-for-mariadb.png create mode 100644 src/content/posts/patching-workbench-26-for-mariadb.md create mode 100644 src/content/posts/zh/patching-workbench-26-for-mariadb.md diff --git a/public/banners/patching-workbench-26-for-mariadb.png b/public/banners/patching-workbench-26-for-mariadb.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e59e2c83009557f6b094e0041cf0adcc417a3d GIT binary patch literal 98813 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 literal 0 HcmV?d00001 diff --git a/scripts/banner-gen/generate.mjs b/scripts/banner-gen/generate.mjs index a882a86..6796dbb 100644 --- a/scripts/banner-gen/generate.mjs +++ b/scripts/banner-gen/generate.mjs @@ -585,6 +585,26 @@ BANNERS['replacing-rdpguard-with-ipban'] = { ], }; +BANNERS['patching-workbench-26-for-mariadb'] = { + titlebar: 'root@win11 — workbench 26.7.0', + lines: [ + { t: 'cmd', text: 'workbench → mariadb 192.168.1.124:3306' }, + { t: 'err', text: 'TypeError: on_session_message() missing 1 arg' }, + { t: 'dim', text: 'the error handler crashed reporting the error' }, + { t: 'err', text: "ERROR 1193: Unknown system variable 'gtid_mode'" }, + { t: 'dim', text: 'MariaDB 10.11 → nversion 101119 · major >= 8 guard passes' }, + { t: 'cmd', text: 'patch replication.py · DbSession.py · SetupTasks.py' }, + { t: 'err', text: "ERROR 1193: 'explain_json_format_version' — again" }, + { t: 'hl', text: '4 connections · mysqlsh proved the server was fine' }, + ], + flow: [ + { n: '1', label: 'mysqlsh test' }, + { n: '2', label: 'fix handler' }, + { n: '3', label: '3 patches' }, + { n: '4', label: 'connected ✓' }, + ], +}; + // ---------- read frontmatter ---------- const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`); let category = 'devops'; diff --git a/scripts/og-gen/generate.mjs b/scripts/og-gen/generate.mjs index 8407448..df32d6b 100644 --- a/scripts/og-gen/generate.mjs +++ b/scripts/og-gen/generate.mjs @@ -181,6 +181,12 @@ TERMINALS['replacing-rdpguard-with-ipban'] = `
 Unrecognized command or argument '--install-service'
$sc.exe create IPBAN type= own start= auto binPath= ...→ AUTO_START ✓
`; +TERMINALS['patching-workbench-26-for-mariadb'] = ` +
 TypeError: on_session_message() missing 1 required argument
+
$select @@gtid_mode · MariaDB 10.11
+
 ERROR 1193: Unknown system variable 'gtid_mode'
+
$3 patches · 4 connections→ connected ✓
`; + const DEFAULT_TERMINAL = `
$engineering · devops · self-hosting
 read the full post →
`; diff --git a/src/content/posts/patching-workbench-26-for-mariadb.md b/src/content/posts/patching-workbench-26-for-mariadb.md new file mode 100644 index 0000000..58cf3de --- /dev/null +++ b/src/content/posts/patching-workbench-26-for-mariadb.md @@ -0,0 +1,299 @@ +--- +title: "When Your Database Client Lies to You: Patching Workbench 26 for MariaDB" +description: "MySQL Workbench 26.7.0 connects to MySQL 8.4 but fails on MariaDB with a useless TypeError. Three patches, and why version numbers stopped meaning what you think." +pubDate: 2026-09-19 +category: devops +tags: [mysql, mariadb, workbench, debugging, electron, mysql-sh, cyberpanel, self-hosting] +ogImage: /og/patching-workbench-26-for-mariadb.png +banner: /banners/patching-workbench-26-for-mariadb.png +draft: false +--- + +I run four database servers from one Windows machine: two MySQL 8.4 instances, one local install, and a MariaDB 10.11 box behind CyberPanel on my LAN. Three of them opened fine in the shiny new MySQL Workbench 26.7.0. One didn't. + +The error it gave me was this: + +``` +TypeError: DbModuleSession.on_session_message() missing 1 required positional argument: 'result' +``` + +That message contains no information about databases, networking, credentials, or MariaDB. It's a Python argument-count error inside the client. And it was the single most misleading error message I've chased this year — because it wasn't the bug. It was **the error reporter crashing while trying to report the bug**. + +This post is the trail from that message to three patches in Oracle's own shipping code, and the underlying design assumption that causes all three. + +## Why this matters + +If you keep more than one database engine around — MySQL here, MariaDB there — you'll hit this class of failure eventually, and the error text will actively mislead you. Three things in this post are worth knowing even if you never open Workbench: + +1. **A garbage error message is itself a finding.** When a tool reports something structurally impossible, suspect its error path before its logic. +2. **`major >= 8` is not a reliable "is this MySQL?" test.** MariaDB reports version 10.x and 11.x. A lot of software gets this wrong. +3. **The version-number collision is systemic**, not a one-off bug in one app — it's why the same fix had to be applied three times in three files. + +## The setup + +The four connections, and which one broke: + +| Server | Engine | Version | Workbench 26.7.0 | +|---|---|---|---| +| DSM NAS | MySQL | 8.4 | works | +| unRaid | MySQL | 8.4 | works | +| localhost (since removed) | MySQL | 8.4.6 | works | +| CyberPanel VM | **MariaDB** | **10.11.19** | **fails** | + +The pattern is obvious in hindsight: everything MySQL 8.4 works, the one MariaDB doesn't. But "it's the odd one out" is not a diagnosis, and I didn't trust it yet. + +## What I tried first, and why it was wrong + +**Theory 1: TLS.** The connection profile had `useSSL = 1` with empty `sslCA`, `sslCert`, `sslKey`. For MySQL 8.x that's fine — it auto-generates certificates. For MariaDB, maybe not. + +This one turned out to be **half right**, and I'll come back to it, because it's a genuine second fault that produces a *different* error. + +**Theory 2: credentials or grants.** Also wrong, and I could disprove it cheaply. Workbench 26 ships its own MySQL Shell binary. Running that binary by hand against the same host is a direct test of everything except Workbench's own code: + +```bash +MSH="/c/Program Files/MySQL/MySQL Workbench/resources/app/shell/bin/mysqlsh.exe" +"$MSH" --sql --uri "admin:PASSWORD@192.168.1.124:3306" \ + -e "select current_user(), version();" +``` + +``` +current_user() version() +admin@% 10.11.19-MariaDB-ubu2404 +``` + +It connects. Same binary, same host, same credentials — works from the command line, fails from the GUI. That narrows it decisively: **the network, server, grants, and password are all fine.** Whatever is broken lives in Workbench's own session-handling code. + +If you take one technique from this post, take that one. Before debugging a client, drive the client's own underlying tool directly to split "the thing is broken" from "this UI is broken." + +## Getting the real error out of it + +Workbench 26 stores its logs somewhere new. The useful ones: + +``` +%APPDATA%\MySQL Workbench\MySQL Workbench-electron.log # app-level, session stderr +%APPDATA%\MySQL\mysqlsh\mysqlsh.log # per-connect log +``` + +The connect log showed something odd. The session *connected*, then stopped: + +``` +Info: Connecting to MySQL at: admin@192.168.1.124:3306 +Info: main: tid=0: CONNECTED: 192.168.1.124:3306 +Warning: Could not enable session tracking for sql_mode: Session tracker not supported by server +``` + +`CONNECTED`, and then nothing. No error, no disconnect. The connection succeeded and the session died silently afterwards. + +Meanwhile the Electron log had the `TypeError` from the top of this post, repeated fifty-one times. That repetition is the clue: an error handler being called once per failure, crashing every time. + +### The bug was in the error handler + +From `gui_plugin\core\dbms\DbSession.py`: + +```python +def terminate_thread(self): + self._close_database(True) + if self.thread_error is not None: + logger.error(f"Thread {self._id} exiting with code {self.thread_error}") + self._message_callback("ERROR", self.thread_error) # two arguments + self._term_complete.set() +``` + +And the callback it's calling, in `DbModuleSession.py`: + +```python +def on_session_message(self, type, message, result, request_id=None): +``` + +Three required parameters. The call passes two. So **whenever a session thread dies, the code that reports it dies too** — and the `TypeError` replaces the original error on its way to the user. + +That's the whole reason this bug was hard to see. Every real error in that session was being swallowed by a crash in the reporting path. Fixing the handler doesn't fix the underlying problem; it makes the problem **visible**. Which is what you need. + +The correct call shape is right there in a sibling file, `DbMySQLSession.py`: + +```python +self._message_callback( + "PENDING", + "Connection lost, reconnecting session...", + None, + self._current_task_id, +) +``` + +So the fix is to match it: + +```python +self._message_callback( + "ERROR", str(self.thread_error), None, self._current_task_id +) +``` + +Restart, retry, and the error message finally tells the truth: + +``` +MySQL Error 1193 (HY000): Unknown system variable 'gtid_mode' +``` + +Now we're somewhere. That's a real error, and it names a real cause. + +## The actual root cause + +`gtid_mode` is a **MySQL-only** system variable. MariaDB doesn't have it — it has `gtid_strict_mode`, `gtid_binlog_pos`, `gtid_current_pos`, and others, but nothing named `gtid_mode`. + +You can confirm both halves in one minute: + +```bash +# On MariaDB — no gtid_mode anywhere in the list +"$MSH" --sql --uri "..." -e "show variables like 'gtid%';" + +# On MySQL 8.4 — there it is +"$MSH" --sql --uri "..." -e "select @@gtid_mode;" +``` + +The offending code, in `gui_plugin\migration\lib\backend\replication.py`: + +```python +if log_bin: + if session.nversion >= 56000: + gtid_mode = session.run_sql("select @@gtid_mode").fetch_one()[0] +``` + +`session.nversion` for MariaDB 10.11.19 is `101119`. That's greater than `56000`, so the guard passes, so the query runs, so MariaDB rejects it and the session dies. + +**And here is the design flaw underneath it.** The guard assumes a version number can tell you which engine you're talking to. It can't. MariaDB and MySQL share a single version register: + +| Engine | Reports as | +|---|---| +| MySQL 5.7 | `5.7.x` | +| MySQL 8.0 / 8.4 | `8.0.x` / `8.4.x` | +| MariaDB 10.6 | `10.6.x` | +| MariaDB 10.11 | `10.11.x` | +| MariaDB 11.x | `11.x` | + +Every MariaDB version is numerically *above* every MySQL version in production use. So `nversion >= 56000` is true for MariaDB. So is `>= 80000`. Any feature-gate written as a MySQL version comparison will pass against MariaDB and then send it syntax it doesn't understand. + +The reliable discriminator is `@@version_comment`, which returns `mariadb.org binary distribution` on MariaDB and something else on MySQL. Workbench even **fetches** that value — it stores it as `VERSION_COMMENT` right next to `VERSION_INFO` — and then never uses it to make this decision. + +This is not sloppiness in one place. It's a wrong assumption applied consistently, which is why the same bug appeared three separate times. + +## Three patches, same mistake + +Once I knew what to look for, the rest were mechanical. All three are the same fix: make the MySQL-only probe tolerant. + +### Patch 1 — `replication.py` + +```python +if session.nversion >= 56000: + try: + gtid_mode = session.run_sql("select @@gtid_mode").fetch_one()[0] + except Exception: + # MariaDB has no gtid_mode system variable; ignore and continue. + gtid_mode = None +``` + +Worth noting: the *same* query is called elsewhere in the codebase, in `checks.py`, and **there it's already wrapped in `try/except`**. Oracle knew this call could fail on some servers. They just didn't apply that knowledge here. Only triggers when binlog is enabled, which it is on this box. + +### Patch 2 — `DbSession.py` + +The error handler from earlier. Strictly this fixes reporting, not MariaDB compatibility — but it's the patch that made patches 1 and 3 findable. Do it early. + +### Patch 3 — `DbMySQLSessionSetupTasks.py` + +Next failure, surfaced by patch 2: + +``` +MySQL Error 1193: Unknown system variable 'explain_json_format_version' +``` + +Which lives here, in a session-setup task that runs on every connect: + +```python +version = self.get_data(common.MySQLData.VERSION_INFO) +major, minor, _ = version.split(".", 2) +if int(major) < 8 or int(major) == 8 and int(minor) < 3: + return +self.execute("SET SESSION explain_json_format_version=2") +``` + +`@@version` is `10.11.19-MariaDB-ubu2404`. Split it: `major = 10`, `minor = 11`. Is `int(major) < 8`? No. Guard passes. `SET SESSION explain_json_format_version=2` is MySQL-only. Error 1193 again. + +Same fix: + +```python +try: + self.execute("SET SESSION explain_json_format_version=2") +except Exception: + pass +``` + +### The separate TLS fault + +Remember Theory 1? It was a real problem, just a different one — and it fails *before* authentication, which makes it look like a credential issue. + +Your connection profile can hold `useSSL = 1` with no certificates. Against MySQL 8.x that's harmless. Against MariaDB with TLS switched off, the handshake is refused outright: + +```bash +"$MSH" --sql --uri "..." -e "select @@have_ssl;" +# have_ssl: DISABLED + +"$MSH" --sql --uri "...?ssl-mode=REQUIRED" -e "select 1;" +# ERROR 2026 (HY000): SSL connection error: +# SSL is required but the server doesn't support it +``` + +The fix is one value in `%APPDATA%\MySQL\Workbench\connections.xml` — set `useSSL` to `0` for that connection only. On a trusted LAN, a plain connection is fine. Back the file up first. + +Two independent faults, two different error signatures. Worth separating in your head: **TLS failures happen before login; the `1193` failures happen after.** If the server rejects your handshake, credentials never get evaluated. + +## How to patch files under Program Files + +The Workbench files are shipped **read-only**, and this bit me twice in a way worth documenting: writes fail *silently*. PowerShell's `WriteAllText` reported success while the file on disk was unchanged — same size, same timestamp. A `.Replace()` on the content reported success and did nothing, because of line-ending differences. + +What actually works: + +1. **Back up in place** — `Copy-Item $f "$f.bak"`, so the pristine original sits next to your version. +2. **Clear the read-only flag** and *confirm* it: `attrib -R`, then check `(Get-Item $f).Attributes` no longer says `ReadOnly`. +3. **Patch by line index**, not string replacement — read all lines, splice, write all lines. Immune to CRLF and quoting differences. +4. **Restore read-only** afterwards with `attrib +R`. +5. **Delete the stale `__pycache__` `.pyc`** — otherwise Python keeps running the old compiled module and you'll conclude your patch didn't work. This one is easy to forget and produces a genuinely confusing result. +6. **Verify syntax** before relaunching: `ast.parse()` on the file, or `node --check` for JS. + +Then restart the app so the patched source is loaded. + +## Test the patch before you hand it back + +A patched build that hasn't been exercised is a guess. Since the failure depends on server behaviour, simulate the server rather than clicking hopefully at the GUI: + +```python +class FakeSession: + nversion = 101119 # MariaDB 10.11.19 + def run_sql(self, q): + if "gtid_mode" in q: + raise Exception("1193 (HY000): Unknown system variable 'gtid_mode'") + if "@@log_bin, @@binlog_format" in q: + return FakeResult((1, "ROW")) # binlog ON triggers the path +``` + +Load the patched function with `exec()`, call it with that fake, and assert it returns instead of raising. It's a five-minute test that turns "I think this works" into "this path is covered." It also confirmed the patch was genuinely being loaded, before I blamed the app. + +## The result + +All four connections work from Workbench 26.7.0 now, including the MariaDB box. Three patched files in Oracle's shipping code, each with a `.bak` beside it: + +| File | Change | +|---|---| +| `replication.py` | guard `select @@gtid_mode` | +| `DbSession.py` | fix error-handler argument count | +| `DbMySQLSessionSetupTasks.py` | guard `SET SESSION explain_json_format_version` | + +One thing I'd flag rather than dress up: these are patches to a closed application's bundled code, not a contribution upstream. They'll be **overwritten by the next Workbench update**, and the fault list may be longer than three — I stopped when the connections worked. If it breaks again after upgrading, expect to walk the same trail and possibly find a fourth instance of the same mistake. + +## What I'd do differently + +- **Drive the client's own binary first.** `mysqlsh` from Workbench's own install folder settled the "is it the server?" question in one command. I should have started there instead of theorising about TLS. +- **Treat an impossible error message as evidence.** `on_session_message() missing 1 required positional argument` is not a database error. When the text doesn't match the domain, suspect the error path itself — and fix that first, because it's blocking your view of everything else. +- **Read the sibling files.** Both the `gtid_mode` guard and the correct `_message_callback` signature existed correctly elsewhere in the same codebase. The bug wasn't ignorance of the right pattern; it was inconsistent application of it. +- **Notice version-gate arithmetic as a smell.** Any `if version >= N` branch that decides *which database engine* you're facing deserves suspicion. Ask what MariaDB reports, not what MySQL reports. +- **Keep the old client installed.** Workbench 8.0.x has no such probe and connects to MariaDB without complaint. Running 26.x for MySQL 8.4 and 8.0.x for MariaDB is a legitimate strategy — and it's the reason this was an evening's puzzle rather than a blocked workday. + +Version numbers are the easiest thing to compare and the easiest thing to compare wrongly. Two projects sharing a numbering scheme is not the same as two projects sharing a feature set. diff --git a/src/content/posts/zh/patching-workbench-26-for-mariadb.md b/src/content/posts/zh/patching-workbench-26-for-mariadb.md new file mode 100644 index 0000000..a3d8ddb --- /dev/null +++ b/src/content/posts/zh/patching-workbench-26-for-mariadb.md @@ -0,0 +1,299 @@ +--- +title: "当数据库客户端对你撒谎:为 MariaDB 修补 Workbench 26" +description: "MySQL Workbench 26.7.0 能连上 MySQL 8.4,却在 MariaDB 上报出一个毫无意义的 TypeError。三处修补,以及为什么版本号不再能说明它是什么引擎。" +pubDate: 2026-09-19 +category: devops +tags: [mysql, mariadb, workbench, debugging, electron, mysql-sh, cyberpanel, self-hosting] +ogImage: /og/patching-workbench-26-for-mariadb.png +banner: /banners/patching-workbench-26-for-mariadb.png +draft: false +--- + +我用一台 Windows 机器管着四个数据库服务:两个 MySQL 8.4、一个本地安装、还有一个跑在局域网 CyberPanel 后面的 MariaDB 10.11。全新的 MySQL Workbench 26.7.0 里,三个连接都正常打开,只有一个不行。 + +它给我的报错是这样的: + +``` +TypeError: DbModuleSession.on_session_message() missing 1 required positional argument: 'result' +``` + +这句话里没有任何关于数据库、网络、凭据或 MariaDB 的信息。它是一个客户端内部的 Python 参数个数错误。而这是我今年追过的最具误导性的一条报错——因为它**根本不是那个 bug**。它是**错误报告器在试图报告 bug 时自己崩掉了**。 + +这篇文章记录从这条报错一路查到 Oracle 自家发行代码里三处修补的过程,以及导致这三处的同一个设计假设。 + +## 为什么值得看 + +如果你身边同时放着不止一种数据库引擎——这边 MySQL、那边 MariaDB——你迟早会碰到这一类故障,而且报错文本会主动把你带偏。即使你从不开 Workbench,下面三点也有价值: + +1. **一条垃圾报错本身就是一个线索。** 当工具报出一个结构上不可能的错误时,先怀疑它的错误处理路径,而不是它的业务逻辑。 +2. **`major >= 8` 不是可靠的「这是不是 MySQL」判断。** MariaDB 报的版本号是 10.x 和 11.x。很多软件在这里栽跟头。 +3. **版本号冲突是系统性问题**,不是某个应用里的一次性 bug——这也正是同一个修补必须在三个文件里各做一遍的原因。 + +## 环境 + +四个连接,以及哪一个坏了: + +| 服务器 | 引擎 | 版本 | Workbench 26.7.0 | +|---|---|---|---| +| DSM NAS | MySQL | 8.4 | 正常 | +| unRaid | MySQL | 8.4 | 正常 | +| localhost(后来已移除) | MySQL | 8.4.6 | 正常 | +| CyberPanel 虚拟机 | **MariaDB** | **10.11.19** | **失败** | + +事后看规律很明显:MySQL 8.4 的全部正常,唯一的 MariaDB 不正常。但「它是唯一的异类」不是诊断结论,当时我也不打算就此相信它。 + +## 我先试了什么,以及为什么都错了 + +**猜测一:TLS。** 连接配置里是 `useSSL = 1`,而 `sslCA`、`sslCert`、`sslKey` 全为空。对 MySQL 8.x 这没问题——它会自动生成证书。对 MariaDB 就未必了。 + +这个猜测结果**对了一半**,后面我会回头讲,因为它是一个真实存在的第二个故障,而且会报出**另一个**错误。 + +**猜测二:凭据或权限。** 也是错的,而且可以用很低成本排除。Workbench 26 自带一个 MySQL Shell 可执行文件。手工拿那个文件去连同一台主机,就能把「除 Workbench 自身代码之外的一切」都测一遍: + +```bash +MSH="/c/Program Files/MySQL/MySQL Workbench/resources/app/shell/bin/mysqlsh.exe" +"$MSH" --sql --uri "admin:PASSWORD@192.168.1.124:3306" \ + -e "select current_user(), version();" +``` + +``` +current_user() version() +admin@% 10.11.19-MariaDB-ubu2404 +``` + +连上了。同一个可执行文件、同一台主机、同一组凭据——命令行能通,图形界面不能。这一下就把范围收得很窄:**网络、服务器、权限、密码全都没问题。** 坏掉的东西在 Workbench 自己的会话处理代码里。 + +如果你只从这篇文章带走一个技巧,就带这个。在调试一个客户端之前,先用它自带的底层工具直接连一次,把「这东西坏了」和「这个界面坏了」分开。 + +## 把真正的报错从里面挖出来 + +Workbench 26 的日志位置变了。有用的两个: + +``` +%APPDATA%\MySQL Workbench\MySQL Workbench-electron.log # 应用层,含会话 stderr +%APPDATA%\MySQL\mysqlsh\mysqlsh.log # 每次连接的日志 +``` + +连接日志里有个奇怪的地方。会话**连上了**,然后就停住了: + +``` +Info: Connecting to MySQL at: admin@192.168.1.124:3306 +Info: main: tid=0: CONNECTED: 192.168.1.124:3306 +Warning: Could not enable session tracking for sql_mode: Session tracker not supported by server +``` + +`CONNECTED`,然后什么都没有。没有报错,也没有断开。连接成功了,会话在之后静默死亡。 + +同时 Electron 日志里躺着开头那条 `TypeError`,重复了五十一次。这个重复次数就是线索:一个错误处理器每次失败都被调用一次,每次都崩。 + +### bug 就在错误处理器里 + +出自 `gui_plugin\core\dbms\DbSession.py`: + +```python +def terminate_thread(self): + self._close_database(True) + if self.thread_error is not None: + logger.error(f"Thread {self._id} exiting with code {self.thread_error}") + self._message_callback("ERROR", self.thread_error) # 两个参数 + self._term_complete.set() +``` + +而它调用的回调,在 `DbModuleSession.py` 里: + +```python +def on_session_message(self, type, message, result, request_id=None): +``` + +三个必需参数。调用只传了两个。所以**每当一个会话线程死亡,负责上报它的代码也跟着死**——于是 `TypeError` 顶替了原本的错误,出现在你面前。 + +这就是这个 bug 难看见的全部原因。那个会话里的每一个真实错误,都被上报路径上的一次崩溃吞掉了。修好处理器并不能修好底层问题;它让底层问题**可见**。而你需要的就是这个。 + +正确的调用写法就在隔壁文件 `DbMySQLSession.py` 里摆着: + +```python +self._message_callback( + "PENDING", + "Connection lost, reconnecting session...", + None, + self._current_task_id, +) +``` + +所以修法就是照抄它: + +```python +self._message_callback( + "ERROR", str(self.thread_error), None, self._current_task_id +) +``` + +重启,重试,报错终于说了实话: + +``` +MySQL Error 1193 (HY000): Unknown system variable 'gtid_mode' +``` + +这才有点进展。这是一个真实的错误,而且指向一个真实的原因。 + +## 真正的根因 + +`gtid_mode` 是**MySQL 专有**的系统变量。MariaDB 没有它——人家有 `gtid_strict_mode`、`gtid_binlog_pos`、`gtid_current_pos` 等等,但没有叫 `gtid_mode` 的东西。 + +两边都可以在一分钟之内验证: + +```bash +# MariaDB 上——列表里根本找不到 gtid_mode +"$MSH" --sql --uri "..." -e "show variables like 'gtid%';" + +# MySQL 8.4 上——它在这儿 +"$MSH" --sql --uri "..." -e "select @@gtid_mode;" +``` + +出问题的代码,在 `gui_plugin\migration\lib\backend\replication.py`: + +```python +if log_bin: + if session.nversion >= 56000: + gtid_mode = session.run_sql("select @@gtid_mode").fetch_one()[0] +``` + +MariaDB 10.11.19 的 `session.nversion` 是 `101119`。它大于 `56000`,于是守卫放行,于是查询发出,于是 MariaDB 拒绝,于是会话死亡。 + +**而它底下的设计缺陷在这里。** 这个守卫假设版本号能告诉你对面是哪个引擎。它不能。MariaDB 和 MySQL 共用同一套版本号体系: + +| 引擎 | 报出的版本 | +|---|---| +| MySQL 5.7 | `5.7.x` | +| MySQL 8.0 / 8.4 | `8.0.x` / `8.4.x` | +| MariaDB 10.6 | `10.6.x` | +| MariaDB 10.11 | `10.11.x` | +| MariaDB 11.x | `11.x` | + +在生产使用中,**每一个 MariaDB 版本号都高于每一个 MySQL 版本号**。所以 `nversion >= 56000` 对 MariaDB 为真,`>= 80000` 同样为真。任何写成 MySQL 版本比较的功能开关,遇到 MariaDB 都会放行,然后发过去它看不懂的语法。 + +可靠的判别依据是 `@@version_comment`,在 MariaDB 上返回 `mariadb.org binary distribution`,在 MySQL 上是别的值。Workbench 甚至**已经取到了**这个值——它把它存成 `VERSION_COMMENT`,就摆在 `VERSION_INFO` 旁边——然后完全没用它来做这个判断。 + +这不是某一处的粗心,而是一个错误假设被一致地贯彻了下去,所以同一个 bug 会在三个地方各出现一次。 + +## 三处修补,同一个错误 + +知道要找什么之后,剩下的都是机械工作。三处都是同一个修法:让那个 MySQL 专有的探测变得可容错。 + +### 修补 1 — `replication.py` + +```python +if session.nversion >= 56000: + try: + gtid_mode = session.run_sql("select @@gtid_mode").fetch_one()[0] + except Exception: + # MariaDB 没有 gtid_mode 系统变量;忽略并继续。 + gtid_mode = None +``` + +值得注意:**同一个查询**在代码库另一处(`checks.py`)被调用时,**本来就包在 `try/except` 里**。Oracle 是知道这个调用在某些服务器上会失败的,只是没把这个认知用到这里。只有在 binlog 打开时才触发,而这台机器上恰好是开着的。 + +### 修补 2 — `DbSession.py` + +就是前面说的错误处理器。严格来说这修的是上报,不是 MariaDB 兼容性——但正是它让修补 1 和修补 3 变得可被发现。要早点做。 + +### 修补 3 — `DbMySQLSessionSetupTasks.py` + +下一个故障由修补 2 暴露出来: + +``` +MySQL Error 1193: Unknown system variable 'explain_json_format_version' +``` + +它在每次连接都会跑的一个会话初始化任务里: + +```python +version = self.get_data(common.MySQLData.VERSION_INFO) +major, minor, _ = version.split(".", 2) +if int(major) < 8 or int(major) == 8 and int(minor) < 3: + return +self.execute("SET SESSION explain_json_format_version=2") +``` + +`@@version` 是 `10.11.19-MariaDB-ubu2404`。切开来:`major = 10`、`minor = 11`。`int(major) < 8` 吗?不是。守卫放行。`SET SESSION explain_json_format_version=2` 是 MySQL 专有语法。又是错误 1193。 + +同样的修法: + +```python +try: + self.execute("SET SESSION explain_json_format_version=2") +except Exception: + pass +``` + +### 另一个独立的 TLS 故障 + +还记得猜测一吗?那是个真问题,只不过是另一个问题——而且它在**认证之前**就失败,所以看起来像凭据问题。 + +你的连接配置里可能存着 `useSSL = 1` 却没有任何证书。对 MySQL 8.x 无害。对关掉了 TLS 的 MariaDB,握手直接被拒: + +```bash +"$MSH" --sql --uri "..." -e "select @@have_ssl;" +# have_ssl: DISABLED + +"$MSH" --sql --uri "...?ssl-mode=REQUIRED" -e "select 1;" +# ERROR 2026 (HY000): SSL connection error: +# SSL is required but the server doesn't support it +``` + +修法是 `%APPDATA%\MySQL\Workbench\connections.xml` 里的一个值——只把那一条连接的 `useSSL` 改成 `0`。在可信局域网里,明文连接没问题。改之前先备份文件。 + +两个独立故障,两种不同的错误特征。脑子里要分开:**TLS 失败发生在登录之前;`1193` 系列失败发生在之后。** 如果服务器拒绝你的握手,凭据根本没机会被验证。 + +## 怎么给 Program Files 下的文件打补丁 + +Workbench 的文件是**只读**的,而这一点以值得记录的方式坑了我两次:写入会**静默失败**。PowerShell 的 `WriteAllText` 报告成功,而磁盘上的文件毫无变化——大小一样、时间戳一样。对内容做 `.Replace()` 也报告成功却什么都没做,原因是行尾符差异。 + +真正有效的做法: + +1. **原地备份**——`Copy-Item $f "$f.bak"`,让原始文件待在你的版本旁边。 +2. **清除只读属性**并且*确认*:`attrib -R`,然后用 `(Get-Item $f).Attributes` 检查 `ReadOnly` 确实没了。 +3. **按行号打补丁**,不要做字符串替换——整行读出、拼接、整行写回。这样对 CRLF 和引号差异完全免疫。 +4. 事后**恢复只读**:`attrib +R`。 +5. **删掉过期的 `__pycache__` `.pyc`**——否则 Python 会继续跑旧的编译模块,然后你会得出「补丁没用」的结论。这条最容易忘,而且产生的结果非常令人困惑。 +6. 重启前**验证语法**:对文件跑 `ast.parse()`,JS 则用 `node --check`。 + +然后重启应用,让修补后的源码被加载。 + +## 交回之前先测补丁 + +没被实际跑过的补丁只是猜测。由于故障取决于服务器行为,正确的做法是模拟服务器,而不是对着界面满怀希望地连: + +```python +class FakeSession: + nversion = 101119 # MariaDB 10.11.19 + def run_sql(self, q): + if "gtid_mode" in q: + raise Exception("1193 (HY000): Unknown system variable 'gtid_mode'") + if "@@log_bin, @@binlog_format" in q: + return FakeResult((1, "ROW")) # binlog 打开才会走到这条路径 +``` + +用 `exec()` 载入修补后的函数,拿这个假会话调用,断言它正常返回而不是抛异常。五分钟的测试,把「我觉得这样行」变成「这条路径被覆盖了」。它也在你去怪应用之前,先确认了补丁确实被加载了。 + +## 结果 + +现在 Workbench 26.7.0 里四个连接全部可用,包括那台 MariaDB。Oracle 发行代码里三个文件被修补,每个旁边都留了 `.bak`: + +| 文件 | 改动 | +|---|---| +| `replication.py` | 给 `select @@gtid_mode` 加容错 | +| `DbSession.py` | 修正错误处理器的参数个数 | +| `DbMySQLSessionSetupTasks.py` | 给 `SET SESSION explain_json_format_version` 加容错 | + +有一点我不打算粉饰:这些是对一个闭源应用自带代码打的补丁,不是对上游的贡献。它们会**被下一次 Workbench 更新覆盖**,而故障清单可能不止三条——我在连接能用之后就停了。如果升级后再次出问题,那就准备重走一遍这条路径,而且可能发现同一错误的第四个实例。 + +## 我会怎么做得不一样 + +- **先用客户端自带的底层工具连一次。** 用 Workbench 自己安装目录里的 `mysqlsh`,一条命令就解决了「是不是服务器的问题」。我应该从这里开始,而不是先去猜 TLS。 +- **把不可能出现的报错当成证据。** `on_session_message() missing 1 required positional argument` 不是数据库错误。当文本与领域不匹配时,怀疑错误路径本身——并且优先修它,因为它挡住了你看向其他一切的视线。 +- **读隔壁的文件。** `gtid_mode` 的容错和正确的 `_message_callback` 签名,在同一个代码库里都另有正确写法。问题不是不知道正确做法,而是应用得不一致。 +- **把版本号判断当成一种异味。** 任何用 `if version >= N` 来决定*面对哪种数据库引擎*的分支,都值得警惕。要问 MariaDB 报什么,而不是问 MySQL 报什么。 +- **保留旧客户端。** Workbench 8.0.x 没有这个探测,连 MariaDB 毫无怨言。用 26.x 管 MySQL 8.4、用 8.0.x 管 MariaDB,是一个完全合理的策略——也正因为如此,这次只是一个晚上的智力题,而不是被堵住的一天。 + +版本号是最容易比较的东西,也是最容易被比较错的东西。两个项目共用一套编号体系,并不等于它们共用一套功能集。