【发布时间】:2023-03-10 05:46:02
【问题描述】:
我已阅读 this article 关于在 Ubuntu 上从 MySQL 切换到 MariaDB。文章声称在两者之间切换是没有问题的。
目前,我正在使用PyMySQL 连接到我的 MySQL 数据库并从中插入、更新和删除值。
我的问题是:我可以升级到 MariaDB 并继续使用我的 Python 代码吗? PyMySQL 也能正确连接到 MariaDB 吗?
【问题讨论】:
我已阅读 this article 关于在 Ubuntu 上从 MySQL 切换到 MariaDB。文章声称在两者之间切换是没有问题的。
目前,我正在使用PyMySQL 连接到我的 MySQL 数据库并从中插入、更新和删除值。
我的问题是:我可以升级到 MariaDB 并继续使用我的 Python 代码吗? PyMySQL 也能正确连接到 MariaDB 吗?
【问题讨论】:
如MariaDB versus MySQL - Compatibility 中所述:
MariaDB 是 MySQL 的二进制替代品
出于所有实际目的,MariaDB 是替换相同 MySQL 版本的二进制文件(例如 MySQL 5.1 -> MariaDB 5.1、MariaDB 5.2 和 MariaDB 5.3 兼容。MySQL 5.5 与 MariaDB 5.5 和也在实践中使用MariaDB 10.0)。这意味着:
- 数据和表定义文件 (.frm) 文件是二进制兼容的。
- 请参阅下面的注释以了解与视图不兼容的情况!
- 所有客户端 API、协议和结构都是相同的。
- 所有文件名、二进制文件、路径、端口、套接字等都应该相同。
- 所有 MySQL 连接器(PHP、Perl、Python、Java、.NET、MyODBC、Ruby、MySQL C 连接器等)都可以在 MariaDB 中正常工作。
- 您应该注意一些installation issues with PHP5(旧 PHP5 客户端检查库兼容性的错误)。
mysql-client包也适用于 MariaDB 服务器。- 共享客户端库与 MySQL 的客户端库二进制兼容。
这意味着在大多数情况下,您只需卸载 MySQL 和 install MariaDB 就可以了。 (如果您使用相同的主版本,如 5.1,则无需转换任何数据文件)。但是,您仍必须运行
mysql_upgrade才能完成升级。这是确保您的 mysql 权限和事件表使用 MariaDB 使用的新字段更新所必需的。
本文继续列出了一些小的不兼容性,您应该检查您的应用程序不依赖这些问题。
【讨论】: