mysql -h host_name -u user_name -p[password] [database_name]
-h:指定主機,本機可省略。-u:指定用戶,Linux 若系統登入名與資料庫用戶名一致可省略;Windows 可設 USER 環境變數。-p:提示輸入密碼(輸入過程不顯示);不建議直接在參數後寫密碼(-ppassword),會殘留於歷史紀錄。USE db_name; 切換資料庫,或在連線參數直接帶入資料庫名稱。ALTER USER 'user'@'host' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='user' AND Host='host';
FLUSH PRIVILEGES;
注意:PASSWORD() 在 MySQL 8.0 已移除,請改用 ALTER USER。
MySQL 啟動時依序讀取下列檔案,後讀取者覆蓋先前設定:
/etc/my.cnf 或 /etc/mysql/my.cnf(全域)DATADIR/my.cnf(實例專屬)--defaults-extra-file 指定檔案~/.my.cnf(使用者專屬)可用 mysql --help --verbose 2>/dev/null | grep -A1 'Default options' 查看實際讀取路徑。
kill -TERM `cat /var/run/mysqld/mysqld.pid` 平滑停止(避免 -9 導致資料遺失)。mysqld_safe --skip-grant-tables --skip-networking &mysql -u rootUSE mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass!'; FLUSH PRIVILEGES;mysqld --skip-grant-tables --skip-networkingALTER USER 指令。TIMESTAMP 欄位插入 NULL → 自動寫入當前時間戳。AUTO_INCREMENT 欄位插入 NULL → 自動產生下一個序號。NULL → 真正儲存 NULL。NULL 代表「值不存在/未知」;'' 代表「已知為空字串」。NULL = NULL 結果為 NULL(非 TRUE),必須用 IS NULL / IS NOT NULL 或 <=>(NULL 安全相等)。COUNT(col) 會忽略 NULL,但會計算空字串;SUM/AVG 同理。NULL FIRST(即使 DESC),可用 ORDER BY col IS NULL, col 控制。SET @var_name := value; -- 賦值
SELECT @var_name; -- 讀取
SELECT @rownum := @rownum + 1 AS row_number, t.* FROM tbl t, (SELECT @rownum := 0) r; -- 模擬 ROW_NUMBER
變數生命週期限於目前連線 Session,適合暫存中間運算結果、分頁游標等場景。