雖然 Ports/Packages 提供預編譯版,但建議至 官網 下載最新穩定版原始碼(當時為 3.23.x),自行編譯可依硬體優化。
./configure \
--prefix=/usr/local/mysql \
--with-named-thread-libs=-lc_r \ # FreeBSD 3.0+ 必須,使用原生執行緒庫
--with-low-memory \ # 記憶體不足時加入
--enable-assembler # 啟用組語優化
make && make install
rm config.cache && make clean。/usr/local,可用 --prefix 變更。# 建立授權表(僅首次)
/usr/local/mysql/scripts/mysql_install_db
# 啟動服務
/usr/local/share/mysql/mysql.server start
# 需先 chmod 777 mysql.server
# 停止服務
/usr/local/bin/mysqladmin shutdown
# 若設有 root 密碼
/usr/local/bin/mysqladmin -u root -p shutdown
# 建立用戶/群組
pw groupadd mysql
pw useradd mysql -g mysql -s /sbin/nologin -d /nonexistent
# 變更資料目錄擁有權
chown -R mysql /usr/local/var
# 修改啟動腳本用戶
sed -i '' 's/mysql_daemon_user=root/mysql_daemon_user=mysql/' /usr/local/share/mysql/mysql.server
# 新增資料庫後同步權限
chown -R mysql /usr/local/var/new_db
在 /etc/rc.local 加入:
/usr/local/mysql/share/mysql/mysql.server start
ps -aux | grep mysqld
# 應見兩個 mysqld 進程(主進程 + 執行緒管理)
單雙引號成對,巢狀引號需轉義或重複:'He said \"Hi\"' 或 "He said ""Hi"""。
$(與 PHP 混淆)、.(保留字)。| 函數 | 說明 |
|---|---|
ABS(x) | 絕對值 |
CEILING(x) | ≥x 的最小整數 |
FLOOR(x) | ≤x 的最大整數 |
ROUND(x[,d]) | 四捨五入(d 位小數) |
MOD(n,m) / n % m | 餘數 |
POW(x,y) | x 的 y 次方 |
SQRT(x) | 平方根 |
RAND([seed]) | 0~1 隨機數 |
LEAST/GREATEST(...) | 最小/最大值 |
NOW()、SYSDATE()、CURDATE()、CURTIME()DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s') 格式化DATE_ADD(date, INTERVAL 1 MONTH) 日期運算