測試環境為 CentOS 8 x86_64 虛擬機.
LOAD Data into Tables 函數有以下幾種.
- LOAD_FILE
LOAD_FILE 函數指定載入檔案位置(只限定位於 MySQL Server Host 上的檔案),需注意權限問題(該使用者需有 File 的權限,可使用 SQL 指令 SHOW PRIVILEGES; 來檢視),無法讀取時 LOAD_FILE 函數會回傳 NULL .得到 NULL 代表 mysql 使用者無法讀取該檔案,這時要注意存放檔案的目錄需要可以進入 (a+x) 的權限,檔案本身至少需要可供讀取 (a+r) 的權限.另外一個可能是當檔案大小超出 MYSQL 的預設時 max_allowed_packet 也無法存取,可以使用SQL 指令 SHOW VARIABLES LIKE ‘max_allowed_packet’; 來檢視.
MariaDB [(none)]> SHOW VARIABLES LIKE 'max_allowed_packet'; +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+ 1 row in set (0.00 sec)
[root@localhost ~]# cat /var/lib/mysql/test.txt ABC 123 [root@localhost ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 5.5.60-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> SELECT LOAD_FILE('/var/lib/mysql/test.txt'); +--------------------------------------+ | LOAD_FILE('/var/lib/mysql/test.txt') | +--------------------------------------+ | ABC 123 | +--------------------------------------+ 1 row in set (0.01 sec)
更多關於 Load 載入資料到資料表,請參考 – https://benjr.tw/101779
- LOAD DATA INFILE
現在透過 SQL 語法 LOAD DATA INFILE 把檔案匯入到資料庫,下面範例使用 /etc/passwd .MariaDB [dbtest]> LOAD DATA INFILE '/etc/passwd' INTO TABLE testdb.passwd FIELDS TERMINATED BY ':' ENCLOSED BY '"' LINES TERMINATED BY '\n' (Username , Password , UID , GID , IDInfo , HomeDir , Shell) ;
更多關於 LOAD DATA 請參考 – https://benjr.tw/103012
- LOAD INDEX
TBD - LOAD XML
XML (Extensible Markup Language) 是一種可延伸標示語言.
相較於 HTML 是定義好的國際通用的標記式語言,我們是無法自訂標記(標籤 Tag),只能變更其屬性值,這時候可以使用 XML 來自定,讓電腦之間可以處理自定的資訊,這邊來看在 MariaDB 資料庫如何處理這些自定的標記(標籤 Tag).
https://benjr.tw/102790
沒有解決問題,試試搜尋本站其他內容