【发布时间】:2019-04-05 04:44:43
【问题描述】:
作为我们构建过程的一部分,我们使用mysqldiff 实用程序(从 maven 调用)通过比较新构建的架构副本与从基线创建的架构版本以及我们的迁移脚本。这一切都适用于 MySQL 5.7。
我们正在寻求升级到 MySQL 8.0.13。数据库用户已配置为使用mysql_native_password。当我们运行构建时,我们从mysqldiff 收到此错误:
ERROR: Authentication plugin 'caching_sha2_password' is not supported
我们知道这个错误是由于该实用程序使用的是旧版本的 mysql-python-connector。我们也知道答案可能就像升级连接器版本一样简单,但我们不知道如何尝试。
可以在https://github.com/mysql/mysql-utilities 找到 MySQL 实用程序。
在 Windows 10 上,我们使用 Oracle Windows 安装程序进行安装。在 Amazon Linux 上,我们使用 yum 安装。
注意:
- MySQL 实用程序似乎基于嵌入式 python2.7 安装(我们没有在任何开发或构建机器上安装独立的 python)。
- 我们没有 Python 专业知识,因此如果我们正在处理嵌入式 Python 的东西,详细的步骤会很有帮助。
- 我们需要在 Windows 10 和 Amazon Linux 上解决这个问题。
我们如何解决此错误,以便我们可以在 Windows 10 和 Amazon Linux 上将 mysqldiff 与 MySQL 8.0.13 服务器一起使用?
如果答案只是升级连接器,那么详细的步骤是什么?
我们是否可以进行服务器安装/配置更改以支持客户端连接旧驱动程序?
【问题讨论】:
-
如何通过 oracle 网站上的安装程序安装 MySQL Utilities?
-
@georgexsh 将安装信息编辑到问题中。在 Windows 上,我们使用 Oracle 安装程序。在 Amazon Linux 上,我们使用 yum。谢谢!
-
老实说,a) 安装 Python 2.7,b) 安装 mysql-connector(从 Oracle 下载)然后 c) git clone 实用程序项目并运行 @987654331 会容易得多@在项目目录中。您可能必须 apply a bug fix Oracle 一直忽略(请参阅 bug report 了解您为什么需要它)。
-
另一种方法是安装 cx_Freeze,即 Microsoft Visual C++ 编译器 9.0 for Python 2.7 包,获取 mysql-connector 源代码和 mysql 客户端头文件,然后按照
package.pyscript 中的说明进行操作mysql-utilities发行版将所有这些放在一起,然后交叉手指运行python package.py build并希望输出的任何内容都可以在某处有用。然后还安装 MS Visual C++ 可再发行包。 -
(后者见cx-freeze.readthedocs.io/en/latest/…,cx-freeze.readthedocs.io/en/latest/…
package.py命令)。
标签: python mysql mysql-connector-python mysql-8.0