本文旨在演示mysql数据库迁移到达梦的过程,对其中可能遇到的问题进行较为详细的讲解
参考文章:达梦数据迁移工具
演示时不同软件所处环境:
同时,将使用Xftp对虚拟机进行连接,模仿远程进行数据迁移,源库和目的库,迁移工具位于不同主机不同系统。
使用XLaunch 进行x11转发,从而能够远程调用图形界面
达梦数据库的安装,实例的初始化和启动参考 达梦数据库安装
dts工具为图形化工具,需要将图形化界面放开
输入以下命令
su root
xhost +
su dmdba
export DISPLAY=IP:0.0
ip替换为运行xftp的主机ip,在windows中可以通过cmd 输入ipconfig查看,或者在网络与Internet属性中查看。
如果你在这一步中,显示类似xhost命令不存在,说明你的centos可能是最小化安装,没有可用的图形界面或者x server。可以执行以下命令进行安装。
su root
yum groupinstall -y "GNOME Desktop"
systemctl set-default graphical.target
reboot
至于安装过程中可能会出现的镜像源等问题,自行百度或询问ai,这里不再赘述。
然后启动dts
/home/dmdba/dmdbms/tool/dts
#默认安装地址,如果有变动替换为你的安装地址
dts启动成功,在我们运行xftp的主机上成功显示了图形化界面
右键左侧白色区域新建工程mysql-dm,然后新建评估,具体步骤参考https://eco.dameng.com/document/dm/zh-cn/start/tool-dm-migrate.html,这里只讲解可能出现的一些问题。
问题1:连接源库时报错,详细报错信息如下
说明你的 Java 应用尝试以用户名 root、从主机 the_db_king 连接 MySQL,权限被拒绝。这通常不是密码错误(因为提示 (using password: YES) 表示密码已提供且格式正确),而是 MySQL 中没有 'root'@'the_db_king' 这个用户账号,MySQL 的用户是 “用户名 + 主机名” 的组合,需要在mysql库中创建对应的用户和主机名。
比较合适的做法是创建一个专属用户进行链接,创建完成后重新填写对应的用户名
-- 允许从特定主机连接
CREATE USER 'appuser'@'the_db_king' IDENTIFIED BY 'StrongPass123!';
-- 授予数据库权限(按需调整)
GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'appuser'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
当然也可以简单粗暴地使用root用户进行远程连接
-- 允许任意主机使用root连接
CREATE USER 'root'@'%' IDENTIFIED BY '你的root密码';
问题2:
在进行上述修改后,连接仍然报错
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
这是尝试使用明文密码认证时,jdbc连接未启用公钥检索时,mysql的安全策略阻止了这次连接
解决方法:在自定义url后面添加下述参数
&allowPublicKeyRetrieval=true&useSSL=false
右键左侧迁移选择新建迁移,和评估中同样地步骤填写源库
在连接dm数据库的时候,可能会出现无法连接的问题,这时候优先检查虚拟机的对应端口有没有开放
使用以下命令开放对应端口
-- 改为实例的对应端口
sudo firewall-cmd --permanent --add-port=5236/tcp
sudo firewall-cmd --reload
如果你运行的dts和dm在一个虚拟机上,那就不会出现上述问题
然后跟随数据迁移工具手册进行即可,按需改动自己的参数,验证迁移结果。
本文进行了使用达梦数据迁移根据把mysql数据库迁移到达梦的演示,重点关注了过程中可能出现的问题,如xserver图形化界面的启动和转发,mysql数据库的连接,。灵活结合官方手册,合理使用ai工具,确保数据库能够成功地进行迁移。
文章
阅读量
获赞
