mysql -h host_name -u user_name -p
# 參數說明:
# -h (--host) 主機名,本機可省略
# -u (--user) 用戶名,Unix同系統登入名可省略;Windows可用 set USER=username
# -p (--password) 提示輸入密碼(最安全);-ppassword 直接帶入(不安全)
連線後:USE db_name; 或啟動時直接指定 mysql -h host -u user -p db_name
UPDATE user SET Password=PASSWORD('newpass') WHERE Host='%';
FLUSH PRIVILEGES;
| 順序 | 路徑 | 作用域 |
|---|---|---|
| 1 | /etc/my.cnf | 全域選項 |
| 2 | DATADIR/my.cnf | 伺服器專屬選項 |
| 3 | --defaults-extra-file 指定檔 | 額外配置 |
| 4 | ~/.my.cnf | 用戶專屬選項 |
後讀取的同名選項會覆蓋先前值。
kill -TERM pid(正常關閉)或 kill -9 pid(強制,不推薦)mysqld_safe --skip-grant-tables &mysql -u rootUSE mysql;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
mysqld-nt --skip-grant-tablesmysql -u root 修改密碼(同 Linux)=、<>、算術運算比較IS NULL / IS NOT NULL<=> 安全等於(NULL = NULL 為真)-- 定義與賦值
SELECT @var := id FROM test WHERE col='val';
-- 後續使用
SELECT * FROM test WHERE col = @var;
變數格式 @name,連線級作用域,連線斷開自動失效。
mysql> PROMPT \d>_
none> USE test
test> USE mysql
mysql>
\d 當前資料庫,_ 空格。常用格式:\u@\h:\d>
DELETE FROM table_name WHERE 1;
比 TRUNCATE 慢但可回傳刪除行數並保持自增值不歸零。
CREATE TABLE account (
account_id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
balance DOUBLE
) ENGINE=InnoDB;
SET AUTOCOMMIT = 0;
BEGIN;
UPDATE account SET balance = 50.25 WHERE account_id = 1;
UPDATE account SET balance = 100.25 WHERE account_id = 2;
COMMIT; -- 或 ROLLBACK 回滾
-- 自動結束事務的語句:ALTER TABLE, BEGIN, CREATE INDEX, DROP DATABASE/TABLE, LOCK TABLES, RENAME TABLE, TRUNCATE, UNLOCK TABLES