MySQL 使用 LOAD DATA INFILE 遇到 duplicate 與 secure-file-priv 解法

MySQL 想要 Import 大量資料進去資料庫,很常遇到 CSV 的資料需要做這種動作,MySQL 預設就可以使用 LOAD DATA 的方式來達成。

  • 註:此篇的 CSV 是使用 Tab 分隔的。

閱讀全文〈MySQL 使用 LOAD DATA INFILE 遇到 duplicate 與 secure-file-priv 解法〉

MySQL 如何計算此語法的實際花費時間

想要查看某段程式花費多少時間,就只要前後包起來,把花費時間相減即可,但是 MySQL 在操作的時候,想要多組語法都做下去,最後再一起看花費的時間,可以做到這點嗎?

閱讀全文〈MySQL 如何計算此語法的實際花費時間〉

Google Data Studio 會使用哪些 IP 連接自己 MySQL

Google Data Studio 可以連接自己指定的 MySQL,來將資料呈現出來。

但是自己的 MySQL 要被連接,大剌剌的公開被連接風險更大,至少得把 IP 限制在一定範圍內。

Google Data Studio 有提供 IP Range,Firewall 或 MySQL 要記得加上這些限制囉~

閱讀全文〈Google Data Studio 會使用哪些 IP 連接自己 MySQL〉

MySQL Log 所有 SQL 語法

MySQL 最常使用的是 Log Slow Query,但是除了 Slow Query 外,還有情況是要抓不知哪來的 SQL 語法,或者要查是哪些語法一起來造成 Lock 等等的問題,所以想要知道 MySQL 到底都接收到哪些 SQL Query?

要怎麼將所有的 SQL 語法都記錄下來呢?

閱讀全文〈MySQL Log 所有 SQL 語法〉

MySQL 的 Access denied for user 'debian-sys-maint' 錯誤訊息修復

Debian Linux 升級、重啟 MySQL 時,遇到下述錯誤:

/usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

該怎麼修復呢?

閱讀全文〈MySQL 的 Access denied for user 'debian-sys-maint' 錯誤訊息修復〉

MySQL 修改 AUTO_INCREMENT 最後累加的值

MySQL 的 Primary Key 使用自動累加 AUTO_INCREMENT,使用 show create table tbl 就可以看到下一個最新要設定的 AUTO_INCREMENT 值是多少 (或者 SELECT MAX(id) + 1 FROM tbl 查看)

想要修改 AUTO_INCREMENT 下一個新增的值,可以使用下述 SQL 語法:

  • mysql> ALTER TABLE tbl AUTO_INCREMENT = n;
  • mysql> ALTER TABLE tbl AUTO_INCREMENT = 1;

MySQL 使用 mysql_config_editor 避免 CLI 出現密碼

MySQL 在 Bash Shell、Script 執行,若有密碼直接打在命令列裡面,都會出現下述的警告 (Warning):

Warning: Using a password on the command line interface can be insecure

為何會有這個警告呢?

主要是平常 CLI 的命令,用 ps 都可以查看到,若密碼打在上面,密碼很容易就因此洩漏出去(不過 MySQL 新版有避免這個問題,密碼直接輸入,於 ps 是看不到密碼的)。

當然除了 ps 外,還有很多方法可以查看,在此就不繼續探討。

閱讀全文〈MySQL 使用 mysql_config_editor 避免 CLI 出現密碼〉