mysql实用程序与mysql 8服务器

qkf9rpyu  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(401)

作为构建过程的一部分,我们使用 mysqldiff 实用工具(从maven调用)通过比较新构建的模式副本和从基线创建的模式版本以及迁移脚本来验证我们的数据库迁移脚本。在MySQL5.7中,这一切都可以正常工作。
我们希望升级到mysql 8.0.13。数据库用户已配置为使用 mysql_native_password . 当我们运行构建时,我们从 mysqldiff :

ERROR: Authentication plugin 'caching_sha2_password' is not supported

我们知道这个错误是由于实用程序使用的是mysql python connector的旧版本。我们也知道答案可能和升级连接器版本一样简单,但我们不知道如何去尝试。
mysql实用程序可以在https://github.com/mysql/mysql-utilities.
在Windows10上,我们使用oracle windows安装程序进行安装。在amazon linux上,我们使用yum安装。
注:
mysql实用程序似乎基于嵌入式python2.7安装(我们没有在任何开发或构建机器上安装独立的python)。
我们没有python方面的专业知识,所以如果我们正在处理嵌入python的东西,那么详细的步骤将非常有用。
我们需要在windows10和amazonlinux上解决这个问题。
如何解决这个错误,以便在windows10和amazonlinux上使用mysqldiff和mysql 8.0.13服务器?
如果答案只是升级连接器,那么具体步骤是什么?
我们是否可以更改服务器安装/配置以支持客户端与旧驱动程序连接?

bnl4lu3b

bnl4lu3b1#

我设法跑了 mysqldiff.py 针对mysql 8,提供了一些修补程序:
克隆修补的源代码并输入其目录:

$ 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实用程序安装到当前的virtualenv:

(venv) $ pip install .

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

/path/to/mysql-utilities/venv/bin/mysqldiff.py

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

venv\Scripts\activate.bat
7eumitmz

7eumitmz2#

我遇到了同样的问题,研究了mysql python连接器代码,并添加了用于缓存\u sha2 \u密码的类。现在对我有用了。
1要解决此问题,请从mysql官方网站下载mysql python connector的源代码,然后安装python(任何版本)。
2解压缩下载的mysql python connector zip文件,在里面你会找到setup.py
三。开放终端和类型 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

相关问题