每天一次,我需要使用ftp和mysqlimport从Net下载的新文件更新MySQL表.但是,我希望我的网站在mysqlimport操作期间保持平稳运行,这需要相当长的时间(这是一个很大的表).什么是确保用户不等待导入完成的好方法?我正在考虑导入临时表,然后重命名它.这是一个好计划吗?
我试图弄清楚如何在没有运气的情况下将输出通过管道导入到mysqlimport中。我有一个巨大的文件(〜250 GB),我想在处理它后通过管道将其导入mysqlimport。我不想创建中间文件/表。我在想像这样的事情:
猫基因组 nawk'sub(“ ^ ...”,“”)'| mysqlimport -uuser -p密码数据库
但是显然这是行不通的。关于如何做到这一点的任何建议?
我有 4 个 csv 文件要导入到我的 AWS mysql 数据库中。
我正在尝试从 Windows 机器使用以下命令:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqlimport.exe" -h myhostname.amazonaws.com -P 3306 -u admin -pmypassword --local --fields-terminated-by=, --lines-terminated-by="\r\n" ticketsdb tickets "Data_2014_1.csv"
Run Code Online (Sandbox Code Playgroud)
我得到的回应是这样的:
mysqlimport: [Warning] Using a password on the command line interface can be insecure.
mysqlimport: Error: 2, File 'tickets' not found (Errcode: 2 - No such file or directory), when using table: tickets
Run Code Online (Sandbox Code Playgroud) 我想在指定的时间自动从指定的"文件夹"导入大约3000个CSV文件.每天都会更新CSV文件以包含新数据.
我明白我应该使用命令行工具"mysqlimport"和--replace选项,(因为有时会改变旧数据)
我正在尝试使用以下命令将 csv 文件导入 mysql:
mysqlimport --columns=name,amount,desc --ignore-lines=1 --fields-terminated-by=, --verbose --local -u muser -p mydb file.csv
Run Code Online (Sandbox Code Playgroud)
该文件包含字段但不包含主键。它看起来像这样:
name, amount, desc
Run Code Online (Sandbox Code Playgroud)
我的 mysql 表如下所示:
CREATE TABLE `organization` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) DEFAULT NULL,
`amount` varchar(128) DEFAULT NULL,
`desc` varchar(128) DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)
如何使用mysqlimport以导入 csv 文件并生成自动递增的 ID?
当我运行它时,我收到以下错误:
mysqlimport:错误:1467,无法从存储引擎读取自动增量值,当使用表:组织时
我有一个文件,比如说data.csv,它正在进入我的服务器,我想使用 将该文件导入到dataMySQL 数据库中的表中mysqlimport。
我的问题是,该文件的数据比我实际想要导入的数据多得多。它被我之前的另一台服务器使用,它需要所有这些数据,但我只需要其中的少数列。
有没有办法指定我要mysqlimport使用哪些列?
我以为它看起来像
mysqlimport --columns="field_1","field_2","field_42","field_31","field_16","field_4" db data.csv
Run Code Online (Sandbox Code Playgroud)
但该表只包含文件的前 6 个字段。如果需要,我可以重新排列表格,以便我想要的字段按顺序排列(即,我将运行--columns="field_1","field_2","field_4","field_16",...)。
我隐约意识到这可以使用 来完成sed,但我很好奇mysqlimport本机是否支持它?
编辑:接受的答案并不完全是我所希望的,但我认为答案是,“不,遗憾的是它不支持它”。无论如何,请查看已接受的答案和评论以获取解决方法!
我正在使用 mysqldump 库和 mysql-import。我需要恢复我的 MySQL 数据库,但在执行此操作时,它告诉我不能添加重复文件,因此我手动放置 DROP TABLE IF EXIST,它起作用并覆盖了数据库,根据Mysqldump 文档有一种默认添加 DROP TABLE 的方法,但我真的不知道该怎么做,有人可以帮助我吗?
var mysqldump = require('mysqldump');
const controller = {};
controller.backupDatabase = function(req, res, next) {
if(mysqldump){
mysqldump({
connection: {
host: 'localhost',
user: 'root',
password: '',
database: 'decoracionesalves',
},
dumpToFile: './DecoracionesAlves.sql',
});
}else{
//Hacer algo aqui.
}
Run Code Online (Sandbox Code Playgroud)
};
module.exports = controller;
Run Code Online (Sandbox Code Playgroud) 我有一个csv文件,其日期字段的格式类似于(以及其他字段):
17DEC2009
Run Code Online (Sandbox Code Playgroud)
当我执行mysqlimport时,其他字段正确导入,但此字段仍然存在 0000-00-00 00:00:00
如何正确导入此日期?我是否必须首先在文件上运行sed/awk命令才能将其设置为正确的格式?如果是这样,会是什么样的?月份是拼写而不是数字的事实吗?
我正在使用 Java 和 MySQL (JDBC),并且我想将转储文件导入到数据库。这样做的正确方法是什么?我尝试过以下代码:
// function "connectToDB" connects to the Database, and not the server.
// variable sourcePath refers to the dumpfile.
Connection con = connectToDB(USERNAME, PASSWORD);
String q = "source " + sourcePath;
System.out.println("Q is: " + q);
try {
Statement statement = con.createStatement();
statement.executeUpdate(q);
} catch (Exception ex) {
ex.printStackTrace();
}
closeConnection(con);
Run Code Online (Sandbox Code Playgroud)
但我得到一个 MySQLSyntaxErrorException :
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“source C:...\Desktop\dumpfile.sql”附近使用的正确语法
我需要使用YII 2.0 Framework将数据从XLS,CSV文件导入MySql数据库,
XLS,CSV文件包含应导入到Mysql DB中的一个表的数据,请提供任何信息以继续.
mysqlimport ×10
mysql ×9
csv ×2
import ×2
linux ×2
bash ×1
csv-import ×1
directory ×1
java ×1
javascript ×1
jdbc ×1
node.js ×1
yii2 ×1