Navicat报9003-the sql is not supported by dbscale
- 教育综合
- 2023-01-27 12:58:54
navicat导入sql文件的时候出现错误,求解决方法。在线等
首先 双击打开数据库,然后“右键”你需要的数据库,然后选“运行sql文件”,点击右侧的“浏览”找到你需要导入的sql文件,点击“开始”就可以了 双击 你的这个链接,例如“本地数据库” 然后你会看到许多的数据库 ,随便打开一个数据库,这个时候你点击navicat上面右侧的查询,创建查询 然后把你的sql打开,复制里面的sql信息,粘贴到那个查询窗口中 运行,这样 创建数据库 和导入表都可以的 打开navicat管理工具----双击打开某一个数据库连接(自己命名的链接,例如'本地mysql链接')-----选择要导入的数据库名称,双击打开---右键这个打开的数据库-----选择运行sql文件---navicat运行sql文件报这个错误怎么解决
你要先选定一个库, navicat下 新建数据库-->打开数据库-->右键运行sql文件 注意编码 以及 数据库名称Navicat导出mysql数据库时出错怎么解决?
项目上 MySQL还原 SQL 备份经常会碰到一个错误如下,且通常出现在导入视图、函数、存储过程、事件等对象时,其根本原因就是因为导入时所用账号并不具有SUPER 权限,所以无法创建其他账号的所属对象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常见场景:1. 还原 RDS 时经常出现,因为 RDS 不提供 SUPER 权限;2. 由开发库还原到项目现场,账号权限等有所不同。
处理方式:
1. 在原库中批量修改对象所有者为导入账号或修改SQL SECURITY为Invoker;2. 使用 mysqldump 导出备份,然后将 SQL 文件中的对象所有者替换为导入账号。
二、问题原因我们先来看下为啥会出现这个报错,那就得说下 MySQL 中一个很特别的权限控制机制,像视图、函数、存储过程、触发器等这些数据对象会存在一个DEFINER和一个SQL SECURITY的属性,如下所示:
--视图定义CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函数定义CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存储过程定义CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--触发器定义CREATE DEFINER=`root`@`%` trigger t_test
--事件定义CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:对象定义者,在创建对象时可以手动指定用户,不指定的话默认为当前连接用户;
SQL SECURITY:指明以谁的权限来执行该对象,有两个选项,一个为DEFINER,一个为INVOKER,默认情况下系统指定为 DEFINER;DEFINER:表示按定义者的权限来执行;INVOKER:表示按调用者的权限来执行。
如果导入账号具有 SUPER 权限,即使对象的所有者账号不存在,也可以导入成功,但是在查询对象时,如果对象的SQL SECURITY为DEFINER,则会报账号不存在的报错。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
改写好处:1. 可以避免还原时遇到 DEFINER 报错相关问题;2. 根据输出信息知道备份是否正常进行,防止备份中遇到元数据锁无法获取然后一直卡住的情况。
mysql用navicat导入.sql文件报错!
1、先改一下编码,起码不能有乱码了 2、把原有的数据库删了,重新创建,一般就可以了navicat for mysql里运行.sql 文件(txt)不成功 Unsuccessfully
就是bom头的问题。
你的操作过程应该是:新建xx.txt文件、用txt编辑器打开、写入语句、另存为"utf-8"编码的xx.sql文件。问题就在于你是在txt编辑器里另存为uft8的,因为会在文件的最前面加上bom头(window自带编辑器中,如果把文件保存为utf8编码就会帮你加上BOM头。即在文件开始的地方插入三个不可见的字符0xEF/0xBB/0xBF,以告诉其他编辑器要用utf8编码来显示字符)。
去掉BOM头的方法:用UEstudio编辑器打开,另存为"utf-8 无BOM"编码的,就好了。
上一篇
新型冠状病毒与高中生物之间的联系
下一篇
返回列表