從原始碼編譯安裝 MySQL 至生產環境的完整流程,含 FreeBSD 版本相依性、GCC 版本需求、低記憶體編譯、多實例部署、啟停腳本、系統服務註冊、root 建立業務用戶、基礎 SQL 語法與函數速查。
雖然 Ports/Packages 內建,但建議至 官網 下載最新 GA 版本原始碼 tarball,確保安全修補與新功能。
| 場景 | 關鍵參數/動作 |
|---|---|
| FreeBSD 3.0+ | --with-named-thread-libs=-lc_r (原生執行緒) |
| GCC 版本 | 需 ≥ 2.81;gmake ≥ 3.75 |
| 記憶體不足 | ./configure --with-low-memory |
| 重新 configure | rm config.cache && make clean |
| 安裝前綴 | --prefix=/usr/local/mysql (預設) |
| 函數 | 說明 |
|---|---|
ABS(x) | 絕對值 |
SIGN(x) | 正負號 (1/0/-1) |
MOD(n,m) / n % m | 取餘 |
FLOOR(x) | 向下取整 |
CEILING(x) | 向上取整 |
ROUND(x[,d]) | 四捨五入 |
EXP(x) | e^x |
LOG(x) / LOG10(x) | 自然/常用對數 |
POWER(x,y) | x^y |
SQRT(x) | 平方根 |
PI() | π |
RAND() | 隨機數 0~1 |
SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, COT
DEGREES(rad), RADIANS(deg)
LEAST(val1, val2, ...), GREATEST(val1, val2, ...)
LENGTH(str), CHAR_LENGTH(str)
CONCAT(str1, str2, ...)
SUBSTRING(str, pos, len), SUBSTR(str, pos, len)
TRIM([BOTH|LEADING|TRAILING] [remstr] FROM str)
UPPER(str), LOWER(str)
REPLACE(str, from_str, to_str)
LOCATE(substr, str), INSTR(str, substr)
LPAD/RPAD(str, len, padstr)
NOW(), CURDATE(), CURTIME()
DATE_FORMAT(date, format)
DATE_ADD(date, INTERVAL expr unit), DATE_SUB(...)
DATEDIFF(date1, date2)
UNIX_TIMESTAMP([date]), FROM_UNIXTIME(ts)
掌握安裝部署與核心語法,快速交付可用的 MySQL 生產實例。