带有MySQL 8 Server的MySQL实用工具

时间:2018-10-31 23:10:44

标签: 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

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

可以在https://github.com/mysql/mysql-utilities上找到MySQL实用工具。

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

注意:

  1. MySQL实用程序似乎基于嵌入式python2.7安装(我们在任何开发或构建计算机上均未安装独立的python)。
  2. 我们没有python专业知识,因此如果我们要处理嵌入式python内容,那么详细的步骤将很有帮助。
  3. 我们需要在Windows 10和Amazon Linux上解决此问题。

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

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

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

2 个答案:

答案 0 :(得分:2)

我已经成功地使用some patches针对mysql 8运行mysqldiff.py

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

$ git clone https://github.com/georgexsh/mysql-utilities.git

创建一个virtualenv并激活它:

$ virtualenv -p python2 venv
$ . venv/bin/activate

安装较新的mysql连接器:

(venv) $ pip install mysql-connector-python>=8.0

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

(venv) $ pip install .

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

/path/to/mysql-utilities/venv/bin/mysqldiff.py
Windows下的

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

venv\Scripts\activate.bat

答案 1 :(得分:0)

我遇到了同样的问题,并调查了mysql python连接器代码并为caching_sha2_password添加了类。现在对我有用。

1。。要解决此问题,请从Mysql官方网站下载mysql-python-connector的源代码,然后安装python(任何版本)。

2。解压缩下载的mysql-python-connector zip文件,然后在其中找到setup.py

3。。打开终端并输入python setup.py install

4。构建文件夹将在当前文件夹中创建。转到build / mysql /并复制authentication.py文件

5。打开Mysql Utilities->> bin->> library.zip,找到mysql connector-> mysql> authentication.pyc文件,然后删除i并粘贴先前复制的authentication.py文件。

6。完成!

如果您不想弄乱它,可以从此链接下载准备好的文件

这是文件和说明的链接。

https://github.com/rgaraisayev/mysqldiff