數據的導入與導出
-
查看導入與導出默認檢索路徑
mysql> show variables like "%file%"; # 模糊查詢 mysql> show variables like "secure_file_priv"; # 精確路徑查詢 mysql> system ls /var/lib/mysql-files # 查看該目錄 # system 可以在mysql交互模式下執行系統命令
-
修改默認檢索路徑
[root@admin ~]# mkdir /myload [root@admin ~]# chown mysql /myload [root@admin ~]# vim /etc/my.cnf [mysqld] secure_file_priv="/myload" secure_file_priv [root@admin ~]# systemctl restart mysqld mysql> show variables like "secure_file_priv"; | secure_file_priv | /myload/ |
數據的導入操作
-
數據導入
什么是數據導入: 把系統文件內容存儲到數據庫服務器的表里 數據導入步驟 - 默認只有root用戶有數據導入權限 - 建庫 建表(表結構根據文件內容創建) - 導入數據 命令格式 mysql> load data infile "目錄名/文件名" into table 庫名.表名 fields terminated by "分隔符" # 區分列 lines terminated by "\n"; # 區分行
-
數據導入示例
mysql> create table user( username char(50), password char(1), uid int, gid int, comment varchar(150), homedir char(150), shell char(50)); mysql> load data infile "/myload/passwd" into table user fields terminated by ":" lines terminated by "\n"; mysql> select * from user; # 查看導入結果 mysql> alter table user add id int primary key auto_increment first; # 為該表添加一條id字段並設置為主鍵
數據的導出操作
-
數據導出
什么是數據導出?把表記錄保存到系統文件里 命令格式 select命令 into outfile "目錄/文件名"; select命令 into outfile "目錄/文件名" fields terminated by "分隔符"; select命令 into outfile "目錄/文件名" fields terminated by "分隔符" lines terminated by "\n"; # 目錄只能是之前配置的檢索目錄
-
數據導出示例
mysql> select * from user into outfile "/myload/1.txt"; mysql> select * from user into outfile "/myload/2.txt" fields terminated by "<-->"; mysql> select * from user into outfile "/myload/3.txt" fields terminated by "<-->" lines terminated by "\n"; # 分別查看輸出的三個文件,查看導出文件的區別 - 不指定分隔符時,默認使用制表符 - 好像有自動'\n'