MySQL/語言/匯入/匯出
外觀
除了 mysqldump(參見 MySQL/管理),您還可以匯出/匯入原始資料。
可以使用 "INTO OUTFILE" 關鍵字匯出資料
SELECT * FROM destinataire INTO OUTFILE '/tmp/test' WHERE id IN (41, 141, 260, 317, 735, 888, 1207, 2211);
請注意,MySQL 守護程序本身會寫入檔案,而不是您執行 MySQL 客戶端的使用者。該檔案將儲存在伺服器上,而不是您的主機上。此外,伺服器需要對您指定的路徑具有寫入許可權(通常,伺服器 _不能_ 寫入您的主目錄,例如)。這就是我們在示例中使用 /tmp(不安全)的原因。
您也可以使用命令列匯出資料
mysql < query.txt > output.txt
其中 query.txt 包含一個 sql 查詢,輸出將儲存在 output.txt 中
在另一個數據庫/計算機/等中,可以匯入資料
LOAD DATA INFILE '/tmp/test' INTO TABLE destinataire;
其他選項包括
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
指定文件的設定方式以及是否存在標題。如果資料檔案中的列與資料庫表的列不對應,則可以將它們對映起來,因此也可以使用虛擬變數省略某些列
LOAD DATA LOCAL INFILE
'/tmp/test'
INTO TABLE destinataire
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
@dummy,
name,
phone_number,
@dummy,
@dummy,
@dummy,
@dummy,
@dummy,
@dummy,
@dummy
)
在這個例子中,我們只需要資料檔案的第二列和第三列,並將這些值儲存在我們資料庫表的 name 和 phone_number 列中。
要匯入一個建立使用者及其資料庫的 .sql 檔案,需要知道該使用者是否已存在於伺服器上,因為 MySQL 沒有 DROP USER IF EXISTS。相反,它適用於資料庫
DROP DATABASE IF EXISTS `base1`;
CREATE DATABASE `base1` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `base1`;
--DROP USER `user1`@'localhost';
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'p@ssword1';
GRANT USAGE ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'p@ssword1';
GRANT ALL PRIVILEGES ON `base1`.* TO 'user1'@'localhost';
PS:如果此命令返回 "DROP DATABASE" statements are disabled,使用 PhpMyAdmin,修改 config.default.php,將 $cfg['AllowUserDropDatabase'] 切換到 true,並清空導航器快取。