背景
nacos使用standalone方式启动,数据存储到内置的derby数据库中,现在要更改为集群启动,原数据要转成mysql。
执行过程
1.nacos内置的derby数据打包后放到本地
tar -cvf data.tar nacos/data/derby-data
2.通过idea添加Apache Derby,加载本地数据源,然后导出sql格式文件
注意事项
derby设置用户名和秘密
我的java8的,下载的是 Apache Derby 10.14.2.0
运行 bin/ij.bat
connect 'jdbc:derby:D:\nacos\data\derby-data';
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.authentication.provider','BUILTIN');
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication','true');
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.username','password'); // uusername对应用户名,password对应密码
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.fullAccessUsers','username');
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.defaultConnectionMode','noAccess');
退出重新进入提示权限验证失败:connection authentication failure occurred. Reason: Invalid authentication..
此时表示用户名和密码设置成功,执行下面命令就可以正确连接了
connect 'jdbc:derby:D:\nacos\data\derby-data;user=username;password=password';
ERROR XSDB6: Another instance of Derby may have already booted the database
有可能是另一个实例已经启动了derby数据库,关闭即可