我有一个MySQL数据库的备份脚本,使用mysqldump
该--tab
选项,因此它.sql
为结构生成一个文件,并.txt
为内容生成一个文件(管道分隔).
有些表有外键,所以当我导入它时,我收到错误:
第8行的错误1217(23000):无法删除或更新父行:外键约束失败
我知道使用SET FOREIGN_KEY_CHECKS=0
(及SET FOREIGN_KEY_CHECKS=1
之后).如果我将这些添加到每个.sql
文件,那么导入工作.但显然在接下来的mysqldump
那些被覆盖的人.
我也尝试将它作为一个单独的命令运行,如下所示,但错误回来了:
echo "SET FOREIGN_KEY_CHECKS=0" | mysql [user/pass/database]
[all the imports]
echo "SET FOREIGN_KEY_CHECKS=1" | mysql [user/pass/database]
Run Code Online (Sandbox Code Playgroud)
是否有其他方法可以在命令行上禁用FK检查?
我有一个包含一个数据库和大约150个表的大型SQL文件.我想mysqlimport
用来导入该数据库,但是,我希望导入过程忽略或跳过几个表.导入所有表的正确语法是什么,但忽略其中一些?谢谢.
我已成功使用转储整个MySQL数据库
mysqldump --databases
Run Code Online (Sandbox Code Playgroud)
生成一个很好的.txt文件.但是,我看不出如何一次性将整个文件读回MySQL; mysqlimport似乎一次只需要一个表.
有没有人知道为什么我在运行mysqlimport时会出现这个错误?
mysqlimport -u someone -pwhatever --columns=a,b,c,d,e bar /var/tmp/baz.sql
mysqlimport: Error: 1045, Access denied for user 'someone'@'%' (using password: YES), when using table: baz
Run Code Online (Sandbox Code Playgroud)
然而...
mysql -u someone -pwhatever
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 199
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants;
+------------------------------------------------------------------------------------------------------------+
| Grants for someone@% |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'someone'@'%' …
Run Code Online (Sandbox Code Playgroud) 我一直在玩mysqlimport而且我遇到了限制,其中文件名必须与表名相同.有没有办法解决这个问题?
我无法重命名该文件,因为它被其他进程使用,我不想复制该文件,因为会有很多文件,有些非常大.
我想使用mysqlimport而不是LOAD INFILE.
编辑:不幸的是,这需要在Windows上运行所以没有带有符号链接的技巧我害怕.
我有一些备份和恢复脚本,我用于我的数据库.该表有一个时间戳字段.备份脚本如下所示:
mysqldump -u user -ppass database --tab="../" --fields-terminated-by="|" --skip-comments table
Run Code Online (Sandbox Code Playgroud)
它创建了两个文件table.sql和table.txt.还原脚本如下所示:
mysql -u user -ppass database < "../table.sql"
mysqlimport -u user -ppass --local --fields-terminated-by="|" database "../table.txt"
Run Code Online (Sandbox Code Playgroud)
但是,备份脚本输出的时间错误 - 它比数据库中的时间晚一个小时 - 但导入时它不会更正它.
例如,一行上的时间是15:10:25,但是当运行备份脚本时,table.txt中列出了14:10:25.当我运行恢复脚本时,同一行现在有14:10:25作为数据库中的时间.如果我再次备份,它会说13:10:25!等等...
我无法弄清楚为什么会这样.时区似乎设置为"SYSTEM"(我在GMT上).table.sql文件有几行提到时区,可能有些问题吗?这是完整的文件:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS …
Run Code Online (Sandbox Code Playgroud) 我在Linux机器上从MYSQL数据库导出,但是当在Windows上将该数据库导入MYSQL时,所有以驼峰为单位的表名现在都是小写的.sql转储中有正确的大小写,但通过phpmyadmin接口导入以删除这些.
如何导入并保留案例?
本文:http://www.linuxask.com/questions/how-to-show-the-warnings-during-mysqlimport
说使用mysqlimport时无法显示警告:
当您使用mysqlimport从文本文件导入数据时,将在导入结束时显示警告数.但是没有办法显示实际的警告信息.
那是准确的吗?我有一个不允许LOAD DATA INFILE的服务器.
导入sql文件时出现以下错误
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode.
Set --binary-mode to 1 if ASCII '\0' is expected. Query: ''.
Run Code Online (Sandbox Code Playgroud)
需要帮助...!!
虽然,尝试将.sql文件导入我的数据库,我收到一个插入语句的以下错误 -
ERROR 1292 (22007) at line 31504: Incorrect datetime value: '1936-01-31 00:00:00' for column 'BatchDate' at row 1. Operation failed with exitcode 1
Run Code Online (Sandbox Code Playgroud)
我仅在1980年以前的日期遇到此错误.仅在我尝试通过import语句或WorkBench导入转储时才会发生此错误.如果我单独执行语句,它可以正常工作.这是表结构和insert语句
DROP TABLE IF EXISTS `BatchEntry`;
CREATE TABLE `BatchEntry` (
`BatchNo` INTEGER NOT NULL AUTO_INCREMENT,
`BatchDate` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`BTax_ID` DOUBLE NULL DEFAULT 0,
`BPayor_No` DOUBLE NULL DEFAULT 0,
`BBroker_No` DOUBLE NULL DEFAULT 0,
`BHam_Cont` VARCHAR(4),
`BInv_Org_Date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`BInv_Due_Date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`BDate_Adv` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`BRec_Amt` DECIMAL(19,4) DEFAULT 0,
`BPaymnt_Com` LONGTEXT,
`BTrans_Count` INTEGER …
Run Code Online (Sandbox Code Playgroud) mysql ×10
mysqlimport ×10
mysqldump ×4
phpmyadmin ×2
command-line ×1
filenames ×1
foreign-keys ×1
restriction ×1
tablename ×1
timestamp ×1
timezone ×1