坑一:
在2019年的某次项目中,我把mysql数据库整体迁移到乙方的项目之中去,迁移的过程中并没有报错的现象,但是TMD让人意想不到的事情发上了。原本20多个视图,迁移过来之后就只剩下两个了,或者说是成功的迁移了两个。
迁移前
迁移后
瞬间搞得我好头大,反复使用各种工具试了一下,都不行。当天到凌晨3点都没睡觉(苦逼的小白啊),使用工具直接进行数据传输是不行了,于是我就把视图用工具导出为***.sql语句,随后导入新库中,WC居然好了,导进去了
坑二:
但是,自古苍天绕过谁啊!!!我进入平台的前端页面的,用视图打开相应的模板,发现报错(一大串,有tomcat什么什么的,也有select某库、某表),那我就去数据库管理工具看啊,这一看不当紧,最后在报错的过程中发现了问题的所在,有的视图引用的不是表,而是库,而TMD,我为了满足对方的需求把库名给改了。没办法,怎么搞呢?打开试图,进入设计页面,把所有原来的库名修改为现在的库名,嘿嘿,发现可以了,能进去了
坑三
后来又发现了一个坑,报错我不能访问,因为我当时是使用read账号创建的,现在我使用的是root(同时有权限),我的解决方法是新建了一个同时read的用户,用户的权限至少要能读(跟不跟以前用户的权限一样无所谓),看了一下别的方法:视图——设计——高级,修改安全性默认为definer(当为这个时不行,只能他的创建者所属,即使是root用户有权限也不行),修改为invoker即可,如下图:
坑四
在执行数据库自动备份脚本时又发现个,执行sh mysqlbackup时报错,说v_视图出错,修改下视图就好了,这是视图的问题