标签: mysqlimport

在命令行上禁用外键检查

我有一个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检查?

mysql command-line foreign-keys mysqlimport

46
推荐指数
5
解决办法
6万
查看次数

MySQL导入数据库但忽略特定的表

我有一个包含一个数据库和大约150个表的大型SQL文件.我想mysqlimport用来导入该数据库,但是,我希望导入过程忽略或跳过几个表.导入所有表的正确语法是什么,但忽略其中一些?谢谢.

mysql mysqldump mysqlimport

38
推荐指数
4
解决办法
5万
查看次数

如何使用mysqlimport读取mysqldump --databases的结果

我已成功使用转储整个MySQL数据库

mysqldump --databases
Run Code Online (Sandbox Code Playgroud)

生成一个很好的.txt文件.但是,我看不出如何一次性将整个文件读回MySQL; mysqlimport似乎一次只需要一个表.

mysql mysqldump mysqlimport

23
推荐指数
3
解决办法
3万
查看次数

mysqlimport:错误:1045,访问被拒绝

有没有人知道为什么我在运行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)

mysql mysqlimport mysql-error-1045

19
推荐指数
4
解决办法
3万
查看次数

使用mysqlimport,其中文件名与表名不同

我一直在玩mysqlimport而且我遇到了限制,其中文件名必须与表名相同.有没有办法解决这个问题?

我无法重命名该文件,因为它被其他进程使用,我不想复制该文件,因为会有很多文件,有些非常大.

我想使用mysqlimport而不是LOAD INFILE.

编辑:不幸的是,这需要在Windows上运行所以没有带有符号链接的技巧我害怕.

mysql filenames mysqlimport restriction tablename

13
推荐指数
2
解决办法
1万
查看次数

MySQL数据导出更改时间

我有一些备份和恢复脚本,我用于我的数据库.该表有一个时间戳字段.备份脚本如下所示:

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)

mysql timezone mysqldump mysqlimport

13
推荐指数
1
解决办法
8550
查看次数

将db导入Windows时保持区分大小写

我在Linux机器上从MYSQL数据库导出,但是当在Windows上将该数据库导入MYSQL时,所有以驼峰为单位的表名现在都是小写的.sql转储中有正确的大小写,但通过phpmyadmin接口导入以删除这些.

如何导入并保留案例?

mysql phpmyadmin mysqlimport

11
推荐指数
1
解决办法
8680
查看次数

使用mysqlimport时是否无法显示警告?

本文:http://www.linuxask.com/questions/how-to-show-the-warnings-during-mysqlimport

说使用mysqlimport时无法显示警告:

当您使用mysqlimport从文本文件导入数据时,将在导入结束时显示警告数.但是没有办法显示实际的警告信息.

那是准确的吗?我有一个不允许LOAD DATA INFILE的服务器.

mysql mysqlimport load-data-infile

10
推荐指数
2
解决办法
7734
查看次数

Mysql错误:在linux服务器上导入sql文件时ASCII'\ 0'

导入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)

需要帮助...!!

mysql mysqldump phpmyadmin mysqlimport

10
推荐指数
3
解决办法
2万
查看次数

MySQL不正确日期时间值早于1980年的日期

虽然,尝试将.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 timestamp mysqlimport

9
推荐指数
1
解决办法
2万
查看次数