mysql導入導出

mysql的導出:
mysql的數據導出到外部是有限制的,查看限制的方式
show variables like '%secure%'
secure_file_priv爲null    表示不允許導入導出
secure_file_priv指定文件夾時,表示mysql的導入導出只能發生在指定的文件夾
secure_file_priv沒有設置時,則表示沒有任何限制

這個參數的值可以再my.ini的配置文件中修改,
修改後需要重啓mysql服務

我這裏沒有修改,所以導入和導出都只能再指定的目錄下/var/lib/mysql-files/
導出命令:
select * from table1 into outfile '/var/lib/mysql-files/table1' fields terminated by ',' lines terminated by '\r\n';

原導出表的建表語句 create table table1(name varchar(10),id int);
新建表結構一樣的表   
create table table2 like table1;

導入命令
load data infile '/var/lib/mysql-files/table1' into table table2 fields terminated by ',' lines terminated by '\r\n';

 

重點:
以上說的都是在情況是 文件和mysql都在同一臺主機節點,也就是都再服務機上
而假如文件再客戶機,要把本地的文件導入導出到服務節點的mysql中,就不用理會
上面導入導出的指定目錄了
(當然,即使是文件和mysql同在一個節點,用下面的方式也不用理會)
把遠端mysql服務器的數據導出到本地的節點 (-N 忽略字段行,test是庫名)
mysql -h 'xxx:xx:xx' -uroot -pxxxx  test -N -e 'select * from table1' > /tmp/test/table1
可以指點本機mysql的數據導出到本機的任意節點了
mysql -h 'localhost' -uroot -pxxxx  test -N -e 'select * from table1' > /tmp/test/table1


把本地文件導入到遠端的mysql服務器
在mysql的命令行中鍵入  加上一個local即可
load data local infile '/tmp/test/table1' into table table2 fields terminated by ',' lines terminated by '\r\n';
也即是說加上local就可以把任意路徑的文件導入到mysql了,不受原先路徑的限制

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章