1. 程式人生 > >linux下mysql 檔案匯入匯出

linux下mysql 檔案匯入匯出

最近在做mysql的資料匯入匯出得到的一些經驗,記錄下。

1.首先要開通匯入匯出的功能,需要設定一個mysql的配置

可以在 my.conf 檔案的最後增加配置項 secure-file-priv=''

用這個命令查到當前的設定 

SHOW VARIABLES LIKE '%secure_file_priv%';
如果為 NULL 表示禁止匯入匯出,如果指定了具體路徑,則匯入匯出必須在這個路徑下,如果為空字串,則可以匯出到任意路徑(必須要有足夠許可權寫任意的路徑許可權)

如果許可權不夠則可以預設到mysql的資料檔案目錄;

沒有設定的錯誤資訊,
錯誤程式碼: 1290
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement



2.許可權問題,在windows下許可權問題好解決。在linux下 mysql的使用者許可權有限,所以我只能預設匯出的mysql的資料檔案下。

-- 如果指定路徑則需要當前使用者具有很高的許可權才行,預設的話基本可以匯出
-- 預設路徑為mysql的資料檔案存放路徑 可以用這個命令檢視檔案放哪個路徑
SHOW VARIABLES LIKE '%datadir%'

SELECT * INTO OUTFILE '2.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM mtdwgl_syn.irms_trans_pipehole; 

LOAD DATA INFILE '/data/mysql/2.txt' INTO TABLE mtdwgl_res.tb_irms_trans_pipehole CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';

3.經過測試2300W條記錄

匯出花了1分46秒

SELECT * INTO OUTFILE '2.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM mtdwgl_syn.irms_trans_pipehole; 
Query OK, 23040110 rows affected (1 min 46.01 sec)

匯入花了 3分22秒

LOAD DATA INFILE '/data/mysql/2.txt' INTO TABLE mtdwgl_res.tb_irms_trans_pipehole CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'; 
Query OK, 23040110 rows affected (3 min 22.10 sec)
Records: 23040110 Deleted: 0 Skipped: 0 Warnings: 0

檔案大小,測試的是2.txt檔案,4.8G

sudo du -h /data/mysql/*.txt
480M /data/mysql/1.txt
4.8G /data/mysql/2.txt

相關推薦

linuxmysql 檔案匯入匯出

最近在做mysql的資料匯入匯出得到的一些經驗,記錄下。 1.首先要開通匯入匯出的功能,需要設定一個mysql的配置 可以在 my.conf 檔案的最後增加配置項 secure-file-priv='' 用這個命令查到當前的設定 SHOW VARIABLES LIKE '%sec

linuxmysql資料的匯出匯入

原文 匯出整個資料庫中的所有資料 1、在linux命令列下輸入: mysqldump -u userName -p dabaseName > fileName.sql fileName.sql最好加上路徑名 匯出資料庫中的某個表的資料

linuxmysql匯入匯出

匯出   資料和表結構 mysqldump -u使用者名稱 -p 資料庫名 > 匯出後的檔名.sql #示例如下 #mysqldump -uroot -p table > table.sql #回車輸入DB密碼 #password 僅表結構 mysql

linuxmysql匯入sql檔案,中文亂碼

檢視資料庫的編碼:進入mysql資料庫下,執行show variables like 'character%';mysql匯入資料庫表的語句為:source sql檔案路徑但是匯入後,發現表中的中文為亂碼,解決方法:在匯入sql檔案之前在資料庫下進行編碼設定: set nam

linux檔案編碼轉碼及將oracle中資料匯入mysql

        這篇文章有不少廢話,只是為了發洩一下。如果讀者找需要解決的問題的辦法,直接無視這些廢話。             最近做的專案要將Oracle中資料匯入Mysql, 資料量約有兩千萬條,慶幸的是隻有一張表,而且資料結構比較簡單。在這個過程中遇到不少坑,現在

Linuxmysql表的匯出匯入

https://blog.csdn.net/u012884402/article/details/47337701 一. 表的匯入 1.進入資料庫 mysql 資料庫名 2.​查看錶 show tables;​ 3.匯入表 ​mysql -u root 資料庫名

linuxmysql資料備份和匯入

匯出整個資料庫結構和資料 mysqldump -h 127.0.0.1 -uroot -p database > /usr/local/dump.sql 匯出單個數據表結構和資料mysqldump -h 127.0.0.1 -uroot -p123456 database table > du

mysql命令匯入匯出sql檔案

window下 1.匯出整個資料庫,首先開啟要匯出的目錄 mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名 mysqldump -u dbuser -p dbname > dbname.sql 下一行需要輸入密碼 mysqldump -uro

linux 資料庫操作,新增資料庫,刪除資料庫,sql檔案匯入匯出

匯入sql檔案需要先將sql上傳至伺服器,故連線上xshell後,cd進入到根目錄,再cd進入www(目錄隨意,只要記得自己的sql檔案是匯入到哪個資料夾就可以了) 執行 rz 選擇本地資料庫檔案(rz 是安裝的上傳工具包,具體請移步另外一篇部落格可檢視安裝使用命令),

Ubuntu16.04系統mysql命令匯入匯出sql檔案

一.匯入sql檔案命令規則: mysql -u userName -p 目標資料庫 < 源sql檔案路徑;結束我測試是匯入quartz原始碼包中的12張表[email protected

MySQL Linux二進位制檔案包安裝mysql

Linux下二進位制檔案包安裝mysql 解壓縮mysql二進位制原始碼包到制定指定目錄,可自定義目錄 tar zxvf /opt/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz -C /opt 建立自定義mysql存放目錄 m

LinuxMySQL的資料檔案存放在哪裡的??

http://bbs.csdn.net/topics/390620630 mysql> show variables like '%dir%';+-----------------------------------------+-------------------

linuxmysql配置檔案my.cnf詳解

用來容納InnoDB為資料表的表空間: 可能涉及一個以上的檔案; 每一個表空間檔案的最大長度都必須以位元組(B)、兆位元組(MB)或千兆位元組(GB)為單位給出; 表空間檔案的名字必須以分號隔開; 最後一個表空間檔案還可以帶一個autoextend屬性和一個最大長度(max:n)。例如,ibdata1:1G;

linux mysql 5.7 配置 my.cnf(mysqld.cnf)檔案位置 以及具體的配置方式

一、問題 mysql 5.7 版本,/etc/my.cnf  和 /etc/mysql/my.cnf  空空如也,需要自己新增需要的配置,而不能像之前一樣 只要去掉 #號註釋即可。 可以參考djCode的blogMySQL的my.cnf檔案(解決5.7.18下沒有my-d

【札記】Linux MySQL-5.7.17 tar.gz 包方式安裝部署後出現密碼過期的問題解決(不修改/etc/my.cnf檔案

【問題描述】 在Oracle linux 6.8上安裝完成MySQL-5.7.17(使用版本為:mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz)後: [[email protected] ~]# mysql --version mysql  Ver 14.14 D

Linuxmysql資料庫定時備份並刪掉3天前的備份檔案

1.首先檢查下有沒有安裝crond,命令為service crond status,如果出現unrecognized service,則說明沒有安裝,如果出現    crond is stopped。如果出現crond (pid  1956) is running...則表示

Mysql SQLyog匯入匯出csv檔案

SQLyog 匯出表中資料存為csv檔案 1.    選擇資料庫表 --> 右擊屬性 --> 備份/匯出 --> 匯出表資料作為 --> 選擇cvs --> 選擇下面的“更改” --> 欄位 --> 可變長度--> 欄位終止

mysql檔案匯入匯出語句

1 將文字檔案中的記錄載入mysql資料庫表中 (1)文字檔案格式:每行一條記錄,欄位值用tab定位符分開,欄位順序和表定義中的順序一致;對於不確定的欄位值用\N表示; (2)LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet

mysql SQLyog匯入匯出csv檔案,解決編碼問題

1.選擇資料庫表 --> 右擊屬性 --> 備份/匯出 --> 匯出表資料作為 --> 選擇cvs --> 選擇下面的“更改” --> 欄位 --> 變數長度 --> 欄位被終止 -->輸入逗號,(這是重點,否則匯出的

LinuxMySQL的資料檔案存放位置

rpm安裝預設目錄:資料檔案:/var/lib/mysql/配置檔案模板:/usr/share/mysqlmysql客戶端工具目錄:/usr/bin日誌目錄:/var/log/pid,sock檔案目錄: