顯示具有 SQL 標籤的文章。 顯示所有文章
顯示具有 SQL 標籤的文章。 顯示所有文章

2025年3月4日 星期二

MySQL default sql_mode

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
若沒特別設定,MySQL 預設的 sql_mode 就是上面的值

若本來 sql_mode 是空的,要啟用預設值,有幾點要注意:
1. 當 INSERT/UPDATE 時,值不能超出欄位長度,不然會報錯 (STRICT_TRANS_TABLES)
2. 當 INSERT 時,若沒有指定到的欄位,沒有預設值,會報錯 (STRICT_TRANS_TABLES)
3. 當 INSERT/UPDATE 字串到數字類欄位,會報錯 (STRICT_TRANS_TABLES)
4. 以前能用的 GROUP BY 語法,啟用後可能無法使用 (ONLY_FULL_GROUP_BY)
5. 不能使用 0000-00-00 及 0000-00-00 00:00:00 這種日期時間 (NO_ZERO_IN_DATE,NO_ZERO_DATE)

2024年11月6日 星期三

MySQL 8.4 LTS

許久沒有留意 MySQL 的版本發展,8.4 都已經出一段時間了(2024-04),
這是繼 8.0 LTS 後下一個 LTS 版本
寫這篇文章時,已經出到 8.4.3

Overview of changes in MySQL 8.4.0

感覺異動不大,
mysql_native_password 預設關閉,
因應時代變化,一些預設參數有調整,
replication 的指令有異動

Download MySQL Yum Repository

裝這個 8.4 的 repo 檔,然後 yum -y update 就升完了
拿一台 8.0 的機器直接升級,並沒有遇到什麼問題,算是無痛升級

2022年1月19日 星期三

MySQL RPM PGP Key 2022

MySQL 官方 RPM GPG Key 在 2022 年變了,若升級套件會看到類似這樣的訊息

The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.

把新的 GPG Key 匯入即可
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2021年5月19日 星期三

Install MySQL 5 on CentOS 8 / RHEL 8

CentOS 8 / RHEL 8 預設 MySQL 版本是 8
若要裝 MySQL 5,需將 8 的設定移除,再裝 5 的 repo

dnf remove @mysql
dnf module reset mysql
dnf module disable mysql
rpm -ivh https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
dnf -y install mysql-community-client mysql-community-common mysql-community-devel mysql-community-libs mysql-community-server
systemctl enable --now mysqld

2021年5月12日 星期三

SQL injection

SQL injection 是個老東西,但 20 幾年過去,它依然健在!
在所有 Web 攻擊,弱點佔比仍然是最高的

NEITHNET 精選講座-資安教室:SQL injection - CYBERSEC 2021 臺灣資安大會

NEITHNET_SQL_injection.pptx 這份簡報是 2021 臺灣資安大會在公司攤位分享的資料

還架了一個 Demo Site https://sqlinjection.cf
Demo Site 預計下架時間 2021-05-31,有興趣的可以玩玩看

2021年5月7日 星期五

mysql_config_editor version < 5.7.33 does not escape strings

mysql_config_editor 在版本小於 5.7.33 有一個 Bug,當 Password 有包含像 # % 特殊符號時,因為沒有 escape 而無法正確的設定,
Workaround 是在輸入密碼時用雙引號括起來
這個問題已在 5.7.33 修正

ref. Bug #74691 mysql_config_editor does not escape strings


Windows 10 ESU extended to 2027-10-12

微軟延長了 Windows 10 ESU 支援時間至 2027-10-12 (又加一年) 可以使用 ConsumerESU 腳本快速啟用 ESU 下載 ZIP 包解開後,以系統管理員身分執行 Consumer_ESU_Enrollment_run.cmd