「公保與勞保資料匯入」修訂間的差異
跳至導覽
跳至搜尋
| 行 5: | 行 5: | ||
| + | |||
| + | ===DS720+ 的 adminer 的讀檔測試=== | ||
| + | * SHOW VARIABLES LIKE 'secure_file_priv'; | ||
| + | *#若為情況一:secure_file_priv = NULL 代表 '''完全禁止 LOAD DATA INFILE''' | ||
| + | *#若為情況二:secure_file_priv = /var/lib/mysql-files/ 代表 '''只能從這個目錄讀檔''' | ||
| + | *#結果是情況三:secure_file_priv = (空白) 代表 '''任何目錄都可以讀,只要權限允許''' | ||
===CSV 資料匯入 MySQL=== | ===CSV 資料匯入 MySQL=== | ||
於 2026年3月10日 (二) 17:30 的修訂
CSV 資料製備
DS720+ 的 adminer 的讀檔測試
- SHOW VARIABLES LIKE 'secure_file_priv';
- 若為情況一:secure_file_priv = NULL 代表 完全禁止 LOAD DATA INFILE
- 若為情況二:secure_file_priv = /var/lib/mysql-files/ 代表 只能從這個目錄讀檔
- 結果是情況三:secure_file_priv = (空白) 代表 任何目錄都可以讀,只要權限允許
CSV 資料匯入 MySQL
adminer 無法以 「load data local infile…」匯入 CSV 所以改用 mysqlimport 匯入 csv,但是 mysqlimp 會把檔名當作資料表名。
- 登入 DS720+ ,以「sudo -i」取得 root 的操作權限
- 從 DS218+ 將 CSV 檔帶入 DS720+
scp -rp adminNas@192.168.4.2:/volume1/Data/2025post/檔名.csv /tmp
=> 回答 adminNas 在 192.168.4.2 中的密碼 - cp -a /tmp/檔名.csv /tmp/資料表名.csv
- 以
/usr/local/mariadb10/bin/mysqlimport --local \ --fields-terminated-by=',' \ --lines-terminated-by='\r\n' \ --ignore-lines=1 \ -u 使用者名 -p 資料庫名 \ /tmp/資料表名.csv
- => 回答使用者密碼
- 再來下一個 csv
- 萬一出錯以「truncate table 表格名;」清空資料表。
登入 MySQL 後 用 SQL 指令匯入
- PuTTY 登入 NAS
- 用 mysql client
- 執行 LOAD DATA LOCAL INFILE
- 登入 MySQL:mysql -u wiki -p 資料庫名稱
- 使用 SQL 指令:
LOAD DATA LOCAL INFILE '/volume1/web/勞保局投保資料202506.csv' INTO TABLE `2025勞保` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`保險證號`,`投保單位名稱`,`保費年月(西元年)`,`投保薪資`,`職災投保薪資`,`行業細類`);