使用MySQL 8 Server的MySQL实用程序

Rob*_*Rob 6 python mysql mysql-connector-python mysql-8.0

作为构建过程的一部分,我们使用mysqldiff实用程序(从maven调用)通过将新构建的模式副本与从基线创建的模式版本以及迁移脚本进行比较来验证数据库迁移脚本.这一切都适用于MySQL 5.7.

我们正在寻求升级到MySQL 8.0.13.数据库用户已配置为使用mysql_native_password.当我们运行构建时,我们会收到以下错误mysqldiff:

ERROR: Authentication plugin 'caching_sha2_password' is not supported
Run Code Online (Sandbox Code Playgroud)

我们知道这个错误是由于该实用程序使用旧版本的mysql-python-connector.我们也理解答案可能就像升级连接器版本一样简单,但我们不知道如何尝试.

可以在https://github.com/mysql/mysql-utilities找到MySQL Utilities .

在Windows 10上,我们使用Oracle Windows安装程序进行安装.在Amazon Linux上,我们使用yum进行安装.

注意:

  1. MySQL Utilities似乎基于嵌入式python2.7安装(我们没有在任何开发或构建机器上安装独立的python).
  2. 我们没有python的专业知识,如果我们使用嵌入式python的东西,那么详细的步骤将会有所帮助.
  3. 我们需要在Windows 10和Amazon Linux上解决这个问题.

我们如何解决这个错误,以便我们可以在Windows 10和Amazon Linux上使用mysqldiff和MySQL 8.0.13服务器?

如果答案只是升级连接器,那么执行此操作的详细步骤是什么?

我们可以进行服务器安装/配置更改以支持连接旧驱动程序的客户端吗?

geo*_*xsh 2

mysqldiff.py我已经成功地在 mysql 8 上运行,并添加了一些补丁

克隆修补后的源代码并输入其目录:

$ git clone https://github.com/georgexsh/mysql-utilities.git
Run Code Online (Sandbox Code Playgroud)

创建一个virtualenv并激活它:

$ virtualenv -p python2 venv
$ . venv/bin/activate
Run Code Online (Sandbox Code Playgroud)

安装较新的 mysql 连接器:

(venv) $ pip install mysql-connector-python>=8.0
Run Code Online (Sandbox Code Playgroud)

将 mysql-utilities 安装到当前的 virtualenv:

(venv) $ pip install .
Run Code Online (Sandbox Code Playgroud)

现在 mysqldiff.py 可以运行了。如果你想在不激活 virtualenv 的情况下运行,你可以使用它的完整路径:

/path/to/mysql-utilities/venv/bin/mysqldiff.py
Run Code Online (Sandbox Code Playgroud)

windows 下的步骤基本相同,除了 virtualenv 激活:

venv\Scripts\activate.bat
Run Code Online (Sandbox Code Playgroud)