首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 實戰教程:連線、權限、配置文件讀取順序、密碼重置、事務處理

     編輯:MySQL 資料庫相關知識

1. 連線參數

mysql -h host -u user -p[password] [db_name]
  • -h 本機可省略
  • -u Unix 下同系統用戶名可省略;Windows 可設 SET USER=name
  • -p 後無空格直寫密碼不安全,建議交互輸入

2. 修改用戶密碼

UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE Host='%';
FLUSH PRIVILEGES;

3. 配置文件讀取順序(優先級遞增)

  1. /etc/my.cnf 全局
  2. DATADIR/my.cnf 服務器級
  3. --defaults-extra-file 指定文件
  4. ~/.my.cnf 用戶級

4. 忘記 root 密碼重置

Linux/Unix

kill -TERM `cat /var/run/mysqld/mysqld.pid`  # 正常關閉
mysqld_safe --skip-grant-tables &             # 跳過權限啟動
mysql -u root                                 # 免密登入
UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
kill -TERM `cat /var/run/mysqld/mysqld.pid`  # 關閉
# 正常啟動

Windows

net stop mysql
mysqld-nt --skip-grant-tables
# 新開 cmd
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
# 關閉控制台,正常啟動服務

5. NULL 值處理

  • 不能用 =/!= 比較,用 IS NULL / IS NOT NULL
  • MySQL 3.23.23+ 新增 <=> 安全等於,可比較 NULL
  • 排序:4.0.2+ NULL 排最前(無論 ASC/DESC)

6. 用戶變量

SELECT @var:=id FROM t WHERE col=val;
SELECT * FROM t WHERE col=@var;

7. 修改提示符

mysql> prompt \d>\_
dbname> 

8. 非優化全表 DELETE 保留計數與自增

DELETE FROM t WHERE 1;

9. 事務處理範例(InnoDB/BDB)

CREATE TABLE account (
  account_id BIGINT UNSIGNED NOT NULL 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, DROP TABLE,
LOCK TABLES, RENAME TABLE, TRUNCATE, UNLOCK TABLES

10. 變量輔助運算

SELECT @first:=balance FROM account WHERE account_id=1;
SELECT @second:=balance FROM account WHERE account_id=2;
UPDATE account SET balance=@first-25 WHERE account_id=1;
UPDATE account SET balance=@second+25 WHERE account_id=2;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved