linux下mysql導(dǎo)出數(shù)據(jù)表命令
linux下mysql導(dǎo)出數(shù)據(jù)表命令
Linux下有時(shí)候只想要導(dǎo)出mysql的數(shù)據(jù)表要使用什么命令呢?下面由學(xué)習(xí)啦小編為大家整理了linux下mysql導(dǎo)出數(shù)據(jù)表命令的相關(guān)知識(shí),希望對(duì)大家有幫助!
linux的mysql導(dǎo)出數(shù)據(jù)表命令詳解
1、導(dǎo)出
a、使用默認(rèn)的路徑
使用命令 select * from 數(shù)據(jù)表名 into outfile '文本名.txt';
b、指定存放的路徑
使用命令 select * from 數(shù)據(jù)表名 into outfile 'd:\文本名.txt';
c、導(dǎo)出數(shù)據(jù)表指定的字段
使用命令 select 字段名1,字段名2··· from 數(shù)據(jù)表名 into outfile '文本名.txt';
2、導(dǎo)入
a、記錄包含數(shù)據(jù)表所有字段
使用命令 load data infile '文本名.txt的路徑' into table 數(shù)據(jù)表名; 導(dǎo)入記錄包含所有字段
b、記錄包含數(shù)據(jù)表指定阻斷
使用命令 load data infile '文本名.txt' into table 數(shù)據(jù)表名(字段名1,字段名2···)注意,字段名的排序應(yīng)與導(dǎo)出的指定的字段名排序一致
補(bǔ)充資料:linux下mysql導(dǎo)出數(shù)據(jù)表時(shí)路徑錯(cuò)誤和解決方法
自定義存放的路徑時(shí)可能會(huì)遇到以下錯(cuò)誤:
[sql] view plain copymysql> select * from patent into outfile '/home/a';
ERROR 1 (HY000): Can't create/write to file '/home/a' (Errcode: 13)
再引用個(gè)解決方案:
很明顯,這是由于權(quán)限問(wèn)題導(dǎo)致的,最主要的問(wèn)題是搞清楚權(quán)限是如何設(shè)置的。
Ubuntu 使用 AppArmor 作為程序權(quán)限限制, Fedora 使用 selinux 作為程序權(quán)限限制.在Linux中,以往的權(quán)限管理,是通過(guò)用戶綁定的,現(xiàn)在還有一種權(quán)限機(jī)制,設(shè)置程序的訪問(wèn)權(quán)限,如:
sudo mysqldump --T db;如果不起動(dòng)程序權(quán)限管理,mysqldump獲得root權(quán)限,可以在任何文件中進(jìn)行操作。
sudo mysqldump -T db;如果ubuntu中啟用apparmor,即使是root權(quán)限,他也會(huì)根據(jù)程序的訪問(wèn)權(quán)限進(jìn)行限定。
所以我們可以將需要訪問(wèn)的目錄添加到AppArmor的配置文件中:
sudo gedit /etc/apparmor.d/usr.sbin.mysqld
添加下面內(nèi)容
/data/* rw,
然后,sudo /etc/init.d/apparmor restart
我是直接在usr.sbin.mysqld找個(gè)有權(quán)限w的目錄(/var/log/mysql/)存放,因?yàn)樽远x目錄貌似還是行不通。。
[sql] view plain copyjesse@jesse-desktop:/var/log/mysql$