我目前正在移植一个基于Tomcat的系统,该系统目前在Tomcat 6上的旧服务器上运行,并使Tomcat 8.5和9能够面向未来,并通过迁移到运行其中任何一个的新服务器来促进其继续使用。后来的版本,我已经开始研究系统的代码和数据库转储(我计划在部署新服务器并且在新服务器上运行的系统运行正常后将数据库转储迁移到MariaDB。)
在MySQL 5.6上,虽然在数据库连接文件(.inc
文件)中进行了一些调整,但它仍然可以正常工作。但是在MySQL 5.7上,我遇到了一个showstopper。每当我在MySQL 5.7服务器上使用phpMyAdmin导入MySQL转储时,即使我将存储过程'DEFINER
设置为仅用户(即没有任何反引号 - 例如root
),phpMyAdmin仍会设置存储过程的定义者为'root'@'%'
。
每当我尝试在连接到MySQL 5.7 DB服务器的Tomcat安装上加载系统的首页时,依赖于SQL连接的子页面就无法呈现。两个子页面上的错误消息如下:
Error in main java.sql.SQLException: The user specified as a definer ('root'@'%') does not exist
MySQL 5.7是否对定义器和存储过程进行了向后不兼容的更改?我可以解决数据库转储中的这些更改吗?
(编辑:我目前正在进行本地移植/测试,只会在部署新服务器后进行MariaDB迁移,并且此处所述的更改已获批准。)