MySQL中你可以使用SELECT...INTO OUTFILE語句來簡單的導出數據到文本文件上。
SELECT ... INTO OUTFILE 語句有以下屬性:
- LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。爲了將一個數據庫的數據寫入一個文件,使用SELECT ... INTO OUTFILE,爲了將文件讀回數據庫,使用LOAD DATA INFILE。
- SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個文件中。該文件被創建到服務器主機上,因此您必須擁有FILE權限,才能使用此語法。
- 輸出不能是一個已存在的文件。防止文件數據被篡改。
- 你需要有一個登陸服務器的賬號來檢索文件。否則 SELECT ... INTO OUTFILE 不會起任何作用。
- 在UNIX中,該文件被創建後是可讀的,權限由MySQL服務器所擁有。這意味着,雖然你就可以讀取該文件,但可能無法將其刪除。
導出表作爲原始數據
mysqldump 是 mysql 用於轉存儲數據庫的實用程序。它主要產生一個 SQL 腳本,其中包含從頭重新創建數據庫所必需的命令 CREATE TABLE INSERT 等。
使用 mysqldump 導出數據需要使用 --tab 選項來指定導出文件指定的目錄,該目標必須是可寫的。
FAQ:
- mysqldump 版本問題;
- mysqldump可以 dump出服務器的mysql數據 也可以dump可鏈接的遠程服務器數據 (-hlocalhost -hXXXX)
- select version() 查看db 版本 本機和遠程db 版本需要一致
- db 開啓遠程 訪問 ;
- mysql庫下 user表
- mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
- mysqldump: Couldn't execute 'show fields from `XXX`': SELECT command denied to user 'root'@'localhost' for table 'XXX' (1142)
- mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'XXX' when using LOCK TABLES
- 思路 權限問題
- mysql庫 user表 查看對應 Host的 各項權限
- flush privileges
- MySQL用戶數據和權限有修改後,希望在"不重啓MySQL服務"的情況下直接生效,那麼就需要執行這個命令