This allows the application to detect whether the backup file has changed or become corrupted. 2. Verify Backup button The Import/Export window now includes Verify Backup…. Select an exported SQL file, and the application calculates its checksum and compares it with the accompanying checksum file. 3. Automatic verification before import When importing an SQL file, WorkbenchReplacement checks for an accompanying .sha256 file. If one exists, its checksum must match before SQL execution begins. Third-party SQL files without checksum files can still be imported. 4. Large-file handling Checksum calculation reads files in 1 MB blocks rather than loading the entire file into memory. This reduces memory usage when verifying large backups.
WorkbenchReplacement — native MySQL transport milestone
Open WorkbenchReplacement.xcodeproj in Xcode and build the WorkbenchReplacement macOS scheme.
This project removes the external mysql executable requirement. The app includes a Swift MySQL wire-protocol implementation and stores passwords in macOS Keychain. It has no Homebrew dependency or separately installed MySQL client requirement.
Implemented
- macOS SwiftUI Xcode application
- Connection profiles and Keychain password storage
- Direct TCP MySQL handshake and
mysql_native_passwordauthentication caching_sha2_passwordfast authentication (when the server permits it)- Query execution, text result parsing, database listing
- No external MySQL command line calls
Known limitations (important)
- This is not yet a complete MySQL Workbench replacement.
- Only loopback TCP (
localhost,127.0.0.1,::1) is allowed to prevent sending credentials to remote hosts without TLS. You can use an independently established local SSH tunnel. - TLS negotiation, full
caching_sha2_passwordauthentication, Unix sockets, multi-result sets, server-side prepared statements, and full protocol error handling are not yet implemented. - EER diagrams,
.mwbsupport, admin features, backup/restore and integrated SSH are not yet implemented. - MySQL servers requiring full caching_sha2 authentication will return an explicit unsupported error. Do not weaken server authentication to work around this.
- Network read/write timeout handling and production hardening remain necessary.
This code was assembled in a Linux environment without Xcode; compile and runtime testing on macOS are required.
Authentication update (October 2026)
This build adds caching_sha2_password full authentication on trusted loopback TCP connections using the server-provided RSA public key and RSA-OAEP-SHA1, implemented with Apple's Security.framework. No Homebrew or external MySQL client is needed. The server public key is not pinned or independently verified, so this mode must not be used over untrusted networks or untrusted local proxies. Remote direct connections are refused. TLS, SSH tunnelling, key pinning, multi-result handling and full Workbench feature parity remain unimplemented.
The source was modified and packaged on Linux; it has not been compiled or integration-tested in Xcode.