您好,登錄后才能下訂單哦!
在實際應用中,大家一定碰到需要將數據庫內的數據進行匯出的情況,下面我就自己經驗進行相應的總結。主要時間一久怕自己會忘記,希望可以記錄一下,以便后續自己查詢,同時也希望可以幫助到有需要的人。
當需要對于MySQL數據庫中的某個表格進行導出時需要做些動作
1.首先進入到你的mysql數據庫中執行指令
例如:
方法一:
外網數據庫中的表格要經過查詢等動作后,將查詢結果進行匯出動作
因為我這個外網數據庫是安裝在172.16.22.7的docker內,故要先進入docker內去執行操作語句,當然如果你在docker外安裝了MySQL的客戶端的話,就可以直接在機器內進行相應操作。
首先進入到172.16.22.7后執行下列語句
1.docker exec -it compassionate_sinoussi bash
#上述compassionate_sinoussi是我的容器名稱
2.mysql -u t -p erico998 zgz
#進入到我的數據庫,參數說明: -u 用戶名 -p 用戶密碼 數據庫名
稍後執行查詢指令(其中outfile 就是匯出數據至指定路徑)
3.mysql[zgz]>select a.f_info_id as info_id , a.f_diggs as info_diggs ,
a.f_reprints as info_reprints,b.f_diggs as buffer_diggs,
b.f_reprints as buffer_reprints from cms_info a,
cms_info_buffer b where a.f_info_id = b.f_info_id
order by info_id asc into outfile '/tmp/aa.txt';
在查詢后發現/tmp/aa.txt是不存在的,需要進行查找
4.find / -name aa.txt
發現aa.txt在tmp的內嵌文件中,故后續操作時,我們無需再增加路徑,直接填寫文件名便可在tmp中生成
接下來要考慮怎麼把容器內部數據傳輸到172.16.22.7主機
5.docker cp container_id:/a.txt /a.txt
如果你需要遠程傳輸文件到另外一臺機器的話,如從172.16.22.7傳輸到172.16.2.1,按下列語句操作即可:
6.scp aa.txt root@172.16.22.1:/data0/
通過上述動作即可將數據庫需要的查詢結果匯出到需要此數據的人員手中了
方法二:
數據庫資料匯出成excel格式:
直接在172.16.22.7 中執行語句即可
echo "use 數據庫名; 需操作的sql語句" | mysql -h 容器IP -u用戶 -p用戶密碼> 存放數據的路徑及名稱
如:echo "use zgz; select a.f_info_id as info_id , a.f_diggs as info_diggs ,
a.f_reprints as info_reprints,b.f_diggs as buffer_diggs,
b.f_reprints as buffer_reprints from cms_info a,
cms_info_buffer b where a.f_info_id = b.f_info_id
order by info_id asc" | mysql -h 172.17.0.1 -ut -perico998 > /data0/test.xls
同樣服務器間遠程傳輸文件,如:從172.16.22.7傳送到172.16.22.1
scp test.txt root@172.16.22.1:/data0/
但因為我的mysql是utf8格式直接導出的,所以在excel打開時會出現亂碼。若直接把excel從回傳到你自己的辦公電腦后,使用notepad打開,然後再將數據內容複製黏貼到新增的excel表格即可。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。