...的mysql上恢复数据,多个数据库文件,出现1146错误
发布网友
发布时间:2022-04-24 00:48
我来回答
共5个回答
懂视网
时间:2022-05-01 17:09
mysql还原数据报错:
ERROR 1289 (HY000) at line 45169: The ‘partitioning‘ feature is disabled; you need MySQL built with ‘--with-plugin-partition‘ to have it working
未完待续...
本文出自 “山大王” 博客,请务必保留此出处http://chenshifei.blog.51cto.com/11883413/1863254
mysql还原数据报错:
标签:备份还原错误
热心网友
时间:2022-05-01 14:17
项目上 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. 使用 mysqlmp 导出备份,然后将 SQL 文件中的对象所有者替换为导入账号。
二、问题原因我们先来看下为啥会出现这个报错,那就得说下 MySQL 中一个很特别的权限控制机制,像视图、函数、存储过程、触发器等这些数据对象会存在一个 DEFINER 和一个 SQL SECURITY 的属性,如下所示:
--视图定义CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFINER VIEW v_test
--函数定义CREATE DEFINER=`root`@`%` FUNCTION `f_test()` RETURNS varchar(100) SQL SECURITY DEFINER
--存储过程定义CREATE DEFINER=`root`@`%` PROCEDURE `p_test`() SQL SECURITY DEFINER
--触发器定义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. 根据输出信息知道备份是否正常进行,防止备份中遇到元数据锁无法获取然后一直卡住的情况。
热心网友
时间:2022-05-01 15:35
你应该想把它做成镜像在拷贝过去恢复数据,否则,可能会造成文件缺失,所以会出现错误。追问怎么制作镜像?我复制过来的表 类型的为innodb的要是直接复制MYSIAM的就可以直接认出来了!
热心网友
时间:2022-05-01 17:09
你是拷贝的(/var){可能在别的目录下}/lib/mysql里面的数据么,直接拷贝里面的数据库文件到新安装的mysql/var/lib/mysql下就可以了。
以上是正常操作,当然你可以直接诶mysqlmp把数据库文件备份数来,比较慢。
如出现错误:
1.检查mysql版本是否一样或版本比较低,支不支持你所备份里数据库的里面的各种功能(如存储方式到5.0才支持)
2.数据库文件是否破损,尝试repare table 对应表,如还不行退出 使用 mysqlcheck -r 数据库 表名 -uroot -ppass修复
3.还不行的话那就太特殊了。。
热心网友
时间:2022-05-01 19:01
我想知道你为什么不用mysql自带的mysqlmp呢?
MySQL中1146错误原因及解决方法mysql中1146提示
1. 执行查询语句时丢失表格:当您尝试查询数据库中的表时,如果有某个表被删除或丢失了,则MySQL将不允许访问该表。这将导致1146错误。2. 执行更改表结构的语句:如果您试图更改数据表的结构,例如更改表名或删除表格,而该表格不存在,则MySQL将不允许对该表进行更改。这将导致1146错误。解决方法:在...
MySQL报错1146一次棘手的挑战1146mysql报错
2.检查表名是否拼写正确 如果数据库中确实包含这个表,那么我们需要检查一下表名是否拼写正确。有时候,我们可能会因为输入错误的表名而导致MySQL报错1146。3.确认是否有访问权限 如果数据库中确实包含这个表,而且表名也没有问题,那么我们需要确认一下当前用户是否有访问权限。可以使用grant命令为用户授权...
mysql中1146错误,提示表不存在,是本地数据库不是从别的机器复制过来的...
1,查询的数据库选择是否正确;2,表名有限制字符,这种情况可以在表名前后加``,不是单引号,Tab键上面,数字键1左边那个键;
mysql 数据库 提示错误error 1146 谢谢
1)重启mysql 2)如果现象依旧,请尝试repaire table wp_xxxx表名,3)如果还不能解决,退出命令行客户端,在mysql安装目录下的bin下 使用mysqlcheck -r 数据库名 表名 -uuser -ppass来修复.
MySQL导入文件总是说失败,然后里面以前的数据库也说不存在,错误号1146...
需要查看导入的sql文件中是否文件数据库表名不对,和现在的不符合,修改一致就好了。
SQL Error:1146,SQLState:42S02 异常怎么解决?
1、这个问题的根源在于,在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感,这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。2、MySQL大小写敏感可以通过配置文件的lower_...
网站打开出现 MySQL 1146错误
数据表不存在 一般是你网站早就安装过了 只是在你打包的时候忘记了打包部分文件 mysqlkiiiw.wos_config 是默认配置的表 通常在执行:install.php 的时候建立的表 安装的时候出现这个的话 哪就是你网站安装包缺少文件了!
mysqldump / mysqlhotcopy 备份mysql出现错误的几种解决办法
Error Meaage: 无法正常使用 mysqlhotcopy 并出现如下错误讯息DBD::mysql::db do failed: Access denied; you need the RELOAD privilege for this operation at /usr/bin/mysqlhotcopy line 472.Ans: 原因就是必须要使用对该数据库有管理权限的账号才行(通常是root),而本账号对数据库权限仅有数据、...
python爬虫将数据导入到mysql数据库时,报错_mysql_exceptions.programmin...
那肯定是因为你的insert语句里面的values有问题,这些值都为空,所以你返回结果行为None,你可以试着输出一下self.insertSql这个变量,看看输出来的结果是什么就知道了。或者是你把values的值换成字符串,成功插入后再修改成变量,慢慢调试。这种数据库操作的问题,最好是要好好检查下自己的sql语句。
MySQL插入中文时出现ERROR 1406 (22001): Data too long for column...
1129:数据库出现异常,请重启数据库 1130:连接数据库失败,没有连接数据库的权限 1133:数据库用户不存在 1141:当前用户无权访问数据库 1142:当前用户无权访问数据表 1143:当前用户无权访问数据表中的字段 1146:数据表不存在 1147:未定义用户对数据表的访问权限 1149:SQL语句语法错误 1158:网络...