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

MySQL 新手必讀:自增主鍵、密碼管理、遠程連線、權限模型十大常見問題匯總

     編輯:MySQL 資料庫相關知識

1. 自增主鍵重置/指定起始值

ALTER TABLE tbl AUTO_INCREMENT = 1000;  -- 下一筆從 1000 開始
-- 注意:不能小於現有最大值

2. 建表時定義自增主鍵

CREATE TABLE abc (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    address VARCHAR(200),
    postcode CHAR(6)
) ENGINE=InnoDB;

3. 既有表新增自增欄位

-- 作為第一欄
ALTER TABLE tb_name ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id);
-- 或作為最後一欄
ALTER TABLE tb_name ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;

4. 修改 root 密碼(三種方式)

-- 方式 A:mysqladmin(命令列)
mysqladmin -u root -p'old_pass' password 'new_pass'

-- 方式 B:SQL(需登入)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
FLUSH PRIVILEGES;

-- 方式 C:UPDATE user 表(舊版/跳過權限模式)
UPDATE mysql.user SET authentication_string=PASSWORD('new_pass') WHERE User='root';
FLUSH PRIVILEGES;

5. 建立遠程連線帳號

-- 僅允許特定 IP
CREATE USER 'app'@'192.168.1.50' IDENTIFIED BY 'strong_pass';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app'@'192.168.1.50';

-- 允許任意 IP(開發環境)
CREATE USER 'dev'@'%' IDENTIFIED BY 'strong_pass';
GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'%';

FLUSH PRIVILEGES;

6. 遠程連線仍失效?檢查三處

  1. 防火牆/安全組:開放 3306 埠。
  2. bind-address:my.cnf 設 bind-address=0.0.0.0 或註解掉。
  3. skip-name-resolve:加速 DNS 反查,避免連線卡頓。

7. 權限生效機制

  • GRANT 即時生效(記憶體權限表更新)。
  • FLUSH PRIVILEGES 僅在直接操作 mysql.user 表(INSERT/UPDATE/DELETE)後需要。
  • 重啟服務會重載磁碟權限表,未 FLUSH 的直接修改會丟失。

8. 查看使用者與權限

SELECT User, Host, plugin FROM mysql.user;
SHOW GRANTS FOR 'app'@'%';

9. 密碼過期與鎖定(5.7+)

-- 設定 90 天過期
ALTER USER 'app'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;
-- 手動解鎖
ALTER USER 'app'@'%' ACCOUNT UNLOCK;

10. 忘記 root 密碼急救

參考《MySQL Root 密碼重置全平台指南》(ID: 90250),核心:--skip-grant-tables → 修改 authentication_string → FLUSH PRIVILEGES。

避坑速查表

誤區正確做法
以為 GRANT 後不用 FLUSH直接 GRANT 不需 FLUSH;手動改 user 表才需
%' 含 localhost不含!需同時建立 'user'@'localhost' 和 'user'@'%'
密碼用 PASSWORD()5.7.6+ 棄用,用 ALTER USER ... IDENTIFIED BY
root 開放 %極度危險,僅允許 localhost/內網管理 IP

建立標準化帳號管理 SOP,從源頭杜絕權限混亂與安全隱患。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved