MySQL匯入資料 mysqlimport

2021-10-06 06:29:31 字數 2646 閱讀 4837

單位已經第4次要求向mysql資料庫匯入資料。由於單位使用兩套完全物理隔離的系統和資料庫,同時,又由於公司規定,不能直接進行乙個資料庫向另乙個資料庫的資料轉移,所以我必須從ftp上獲取已經匯出來的資料檔案。

通過查閱,發現mysqlimport指令可以直接將檔案中的資料匯入資料庫中,要求檔名和表名一致

mysqlimport -u root -p$password dbname --local table_name.dat --fields-terminated-by=

'|'# --local 選擇本地檔案需要做的,若是本地檔案但沒加這個option,就會報1290錯誤

# --fields-terminated-by 分隔符

# $password一定要緊貼-p書寫

mysql -u使用者名稱 -p密碼 < 檔名.sql # 注意這個得是sql檔案

由於crontab執行路徑必須是絕對路徑,所以上述方法不可用,而在編譯檔案中使用語言編寫插入資料又十分麻煩,合理利用mysql就變得至關重要,load data local infile就提供這種指令碼內匯入資料的方式。

load data infile 路徑 into table 表名 fields terminated by '|@|';
以下列出的都是常用的。

mysqldump -u使用者名稱 -p密碼  資料庫名 > 匯出檔名  # 匯出資料庫

mysqldump -u使用者名稱 -p密碼 資料庫名 表名》 匯出檔名 # 匯出資料表的結構和資料

mysqldump -u使用者名稱 -p密碼 -d 資料庫名 > 匯出檔名 # 匯出資料庫的結構

mysqldump -u使用者名稱 -p密碼 -d 資料庫名 表名》 匯出檔名 # 匯出資料表的結構

本人所在的專案使用mysqlimport匯入資料是得做定時,做shell指令碼的。起初,本人很排斥用shell,理由很簡單,過去3,4年用的機會少,所以第一反應就是這東西不常用,但是觀察的多了,發現單位進場用shell做oracle資料的匯入匯出。本人就有心研究一下所有相關的東西。

使用mysql提供的各種相關工具確實好,但是獲取匯入的資料有時候不能全部一次匯入資料,為避免資料重複,需要對原資料庫進行篩選操作。

username=

"root"

# 你資料庫的使用者名稱,一般預設都是root,另外建議字串都是用雙引號的,單引號存在

result=

`/usr/local/mysql/bin/mysql -u$username -p$password -d $dbname -e "$select_sql"

`number=

`echo $

|awk''`

echo

$number

# 以上3句都必須存在,否則系統就會報mysql的指令列表,似乎是沒有識別到需要的東西

mysql的使用過程中會遇到mysqlimport: error: 1148, the used command is not allowed with this mysql version, when using table:這種錯誤,這個使用一般都是local_infile沒有開啟,檢視方式為:

show variables like 'local%';

# local_infile顯示為off就應該設定以下

set global local_infile = 1;

注意:上述問題,每次重啟mysql都需要做的。

避免能重複插入資料的,注意一定要在not exists的內部加上where條件語句

insert into tb_data_panel_two(rowcode, rowname, rowvalue_1, rowvalue_2, 

rowvalue_3, rowvalue_4, sorttxt, select_type, createtimetxt)

select blng_insid, blng_inst_shrtnm, plat_corp_user_cnt, plat_corp_user_dv_with_lastd,

plat_corp_user_dv_with_lastm, plat_corp_user_dv_with_lasty, plat_type,

"對公使用者數", data_date

from chg_cust_stat t1

where not exists(

select rowcode, sorttxt, createtimetxt from tb_data_panel_two t2

where t1.blng_insid=t2.rowcode and t1.plat_type=t2.sorttxt

and t1.data_date=t2.createtimetxt

);

查詢並更新字段值

update table_name set column_name=replace(column_name,"aaa", "ccc") 

where column_name like "%aaa%";

PHP使用mysqli連線MySQL資料庫

1.建立連線 function mysqli connect host user password database port socket 說明 host 可選,對應的主機ip位址 user 可選,mysql使用者名稱 password 可選,密碼 database 可選,資料庫名稱 port 可...

PHP使用mysqli連線MySQL資料庫

使用mysqli函式庫連線mysql,支援物件導向和面向過程兩種方式 1.物件導向的使用方式 建立乙個連線 db new mysqli localhost root 123456 dbname 假設建立連線時未指定資料庫則選擇使用的資料庫。切換使用的資料庫 db select db dbname 查...

mysql匯入情況 MySQL 匯入資料

mysql 匯入資料 本章節我們為大家介紹幾種簡單的 mysql 匯出的資料的命令。1 mysql 命令匯入 使用 mysql 命令匯入語法格式為 mysql u使用者名稱 p密碼 要匯入的資料庫資料 runoob.sql 例項 mysql uroot p123456 runoob.sql 以上命令...