MySQL 8.0 新增資料庫帳號(User)

MySQL 8.0 要新增 DB User 的方法跟以前不太一樣,以前只要 grant 就會自動建立,現在需要另外 CREATE。

現在會需要下述步驟:

  1. 建立使用者
  2. 給使用者授權權限

閱讀全文〈MySQL 8.0 新增資料庫帳號(User)〉

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 出現密碼〉

MySQL CLI 關閉 auto commit 避免失誤

MySQL 於 CLI 操作時,通常都要特別小心再小心,但是也是很難避免有意外的發生,此時可以使用 Transaction 的特性,再多一層保障。

  • 注意:上述需要支援 Transaction(交易)(例如:InnoDB),MyISAM 是不支援 Transaction 的

閱讀全文〈MySQL CLI 關閉 auto commit 避免失誤〉

使用 mysqldump 倒出 MySQL 所有資料庫(表) 固定筆數的資料

想要快速建立開發、測試環境,資料庫的資料通常最難搞定。

此篇將隨意由 MySQL 的各個資料庫、各個 Table 倒出固定筆數的資料,然後快速匯入產生開發、測試環境。

  • 注意:此篇「沒辦法」搞定資料相依性、資料匿名、資料隱藏等等。

閱讀全文〈使用 mysqldump 倒出 MySQL 所有資料庫(表) 固定筆數的資料〉

好文:MySQL、MariaDB 與 Percona 的比較 - 2017

MySQL 被 Oracle 買走了,有另外兩個分支 MariaDB 和 Percona 可以使用,都發展的還不錯,也幾乎都相容,但是到底各個分支有什麼優缺點呢?

要選擇 MySQL 想要用哪個版本,可以參考此篇文章。(此篇文章裡面還可以知道很多有用的工具)