shell往mysql資料庫匯入新

2022-01-11 02:40:47 字數 3984 閱讀 6129

1樓:愛可生雲資料庫

本文介紹 mysql 8.0 shell 子模組 util 的兩個匯入特性 importtable/import_table(js和python 版本的命名差異)、importjson/import_json的使用方法。

其中 import_table 是通過傳統 mysql 協議來通訊,import_json 是通過 x 外掛協議來通訊。mysql 一直以來提供匯入檔案 sql 命令 load data infile(單執行緒)以及對應的可執行檔案 mysqlimport(多執行緒)。

比如我匯入 100w 行示例資料到表 ytt.tl1,花了 24 秒。這個已經是 mysql 預設匯入來的最快的。

分析那我們現在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。

使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 埠的新連線我這裡切換為 python 模式清空掉示例表 ytt.

tl1import_table 有兩個引數,第一個引數定義匯入檔案的路徑,第二個定義相關選項,比如匯入的格式,併發的數量等。定義檔案路徑(引數1)定義選項(引數2)執行匯入:只花了不到 17 秒,比傳統 mysqlimport 快了不少。

我們上面指定了顯式指定了欄位分隔符,那有沒有已經定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那麼上面的匯入,我們可以更簡單,改下變數 y_options1 的定義匯入時間差不多。

這裡要說明下,dialect 選項的優先順序比較低,比如新增了'linesterminatedby':'\r\n', 則覆蓋他自己的'\n'。

選項 diaelect 還有一個可選值為 json,可以直接把 json 結果匯入到文件表裡。比如我新建一張表 tl1_json重新定義檔案以及匯入選項。匯入 json 資料速度也還可以,不到 24 秒。

那匯入 json 資料,就必須得提到以 x 外掛協議通訊的工具 import_json了。2. imort_json我們切換到 mysqlx 埠import_json 引數和 import_table 引數類似,這裡我改下選項我在手冊上沒有看到多執行緒的選項,所以單執行緒跑 35 秒慢了些。

檢視剛剛匯入的資料import_json 不僅僅可以匯入 json 資料,更重要的是可以在 bson 和 json 之間平滑的轉換,有興趣的同學可以去 try 下。

2樓:匿名使用者

若要將大量的資料值插入到資料庫的一個或多個表中,使用insert into語句來實現將是一項無聊的工作。

1、load data通過讀取本地檔案系統上的檔案,可以將大量資料新增到資料庫中。

mysql> load data infile 『datafile.txt』 into table db2.table_name;

mysql> load data infile 『datafile.txt』 into table db2.table_name fields terminated by 『,』 optionally enclosed by 『」『;

mysql> load data infile 「file.txt」 into table table_name fields terminated by 『\t』 (sid,name);

2、還有一個mysqlimport命令可以批量增加,mysqlimport直接從檔案讀取批量資料。它相當於load data語句的一個介面。

mysqlimport可以自動生成一個load data語句,該語句把filename.txt檔案中的資料裝入table_name表中。

mysqlimport根據檔名匯入表名,即將檔名第一個圓點前的所有字元作為表名。例如,檔案class.txt被裝入class表中。

例如:mysqlimport -l -uroot -proot db01 table_name.txt;

mysqlimport -local table_name filename.txt;

3、datafile.txt內容:

「1」,」a string」,」100.20″

「2」,」a string containing a , comma」,」102.20″

「3」,」a string containing a \」 quote」,」102.20″

「4」,」a string containing a \」, quote and comma」,」102.20″

4、假如你有x表,匯入了一個y表,將y表資料插入x表:

insert into x select * from y;

如何用shell指令碼將在mysql資料庫中得到的資料匯入到oracle資料庫中?

3樓:超級小褲衩

有一個工具是mysql到oracle做資料遷移的叫convert mysql to oracle 你可以試試,不知道合不合適。

非要弄shell的話,那可真是麻煩可以選擇讓程式設計師寫個小程式轉換sql的讓後用shell呼叫。

真自己寫shell。。。那就折騰匯出來的 create、insert語句吧。想想都頭大。是在沒必要完全用shell弄。

linux shell指令碼執行mysql mysql資料庫在遠端伺服器上

4樓:

給你一個操作mysql的shell,自己舉一反三

mysql -u』username』 -p』passwd『 -d 'dbname' -e 'select * from tablename'

5樓:

新建檔案

內容:#!/bin/sh

mysql 操作

......

儲存執行chmod u+x 新建檔案name

怎麼用shell指令碼 去 讀取mysql的資料,並把資料傳到該指令碼中,替換變數

6樓:匿名使用者

#!/bin/bash

user="root"

pass="123456"

database="cactidb"

table="cdef"

data=`mysql -u $user -p$pass $database <

select * from $table;

eof`

echo $data

7樓:匿名使用者

var=`echo "select * from sometable" | mysql -u username -ppassword dbname`

如何在shell中操作mysql資料庫

8樓:匿名使用者

對mysql偶爾有用的另一個選項是-e或--execute選項,可用來將sql語句傳遞給伺服器。該語句必須

用引號引起來(單引號或雙引號)。(然而,如果想要在查詢中將值引起來,則對於查詢應使用雙引號

,查詢中引用的值應使用單引號)。當使用該選項時,語句被執行,然後mysql立即退出命令外殼。

例如,你可以用下面的命令獲得使用者賬戶列表:

shell> mysql -u root -p -e "select user, host from user" mysql

請注意mysql資料庫名作為一個獨立的參量傳遞。然而,相同的查詢可能已經使用mysql -u root -p

-e "select user,host from mysql.user"從外殼中執行。

可以按這種方式傳遞多個sql語句,用分號隔開:

shell> mysql -u root -p --execute="select name from country where name like

'au%';select count(*) from city" world

9樓:出門在外

mysql -uroot -p -e 〃mysql的命令〃

mysql資料庫和access資料庫有什麼區別

mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言...

如何在MYSQL資料庫中資料庫,如何在MYSQL資料庫中新建一個資料庫

createusertomidentifiedby 密碼 建立使用者 grantallprivilegesondbname.totom 把dbname庫的所有操作許可權都給tomflushprivileges 重新整理快取,生效 在控制檯根目錄下開啟sqlserver企業管理器,新建sqlserve...

mysql資料庫怎麼備份資料庫,怎麼備份mysql資料庫

mysqldump 命令算嗎 怎麼備份mysql資料庫 mysql資料庫怎麼備份啊?假如是用phpmyadmin的話就直接upload就可以了假如用的是虛擬空間的話後臺應當有控制面板,有立案mysql功能的 mysql資料庫怎麼備份資料庫 mysqldump基本語法 mysqldump u user...