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

Linux 系統下 MySQL 資料庫完整操作指南:連線、帳號、DDL/DML 實戰

     編輯:MySQL 資料庫相關知識

一、連線 MySQL 服務

# 本機連線(無密碼 root)
mysql -u root -p

# 指定主機/埠/密碼
mysql -h 192.168.1.100 -P 3306 -u root -p'password'

# 退出
exit  # 或 quit、Ctrl+D

二、修改 root 密碼

# 方法 1:mysqladmin(命令列)
mysqladmin -u root -p'old_pass' password 'new_pass'

# 方法 2:SQL 語句(需先登入)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
FLUSH PRIVILEGES;

三、帳號與權限管理

建立使用者

-- 僅允許本機登入,擁有 mydb 所有權限
CREATE USER 'dev'@'localhost' IDENTIFIED BY 'strong_pass';
GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';

-- 允許遠端登入(% 代表任意主機)
CREATE USER 'app'@'%' IDENTIFIED BY 'strong_pass';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';

FLUSH PRIVILEGES;

常用權限說明

權限說明
ALL PRIVILEGES除 GRANT OPTION 外所有權限
SELECT / INSERT / UPDATE / DELETE資料查詢/增/改/刪
CREATE / DROP / ALTER結構建立/刪除/修改
INDEX索引管理
GRANT OPTION將自身權限授予他人

查看/撤銷權限

SHOW GRANTS FOR 'dev'@'localhost';
REVOKE DELETE ON mydb.* FROM 'dev'@'localhost';
DROP USER 'dev'@'localhost';

四、資料庫與資料表操作(DDL)

-- 顯示資料庫
SHOW DATABASES;

-- 建立/切換/刪除資料庫
CREATE DATABASE school DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE school;
DROP DATABASE school;

-- 建立資料表
CREATE TABLE teacher (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    address VARCHAR(100) DEFAULT '深圳',
    hire_date DATE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 修改結構
ALTER TABLE teacher ADD COLUMN phone VARCHAR(20) AFTER name;
ALTER TABLE teacher CHANGE COLUMN address addr VARCHAR(150);
ALTER TABLE teacher DROP COLUMN phone;

-- 刪除資料表
DROP TABLE teacher;

五、資料操作(DML)

-- 插入
INSERT INTO teacher (name, hire_date) VALUES ('張三', '2020-01-15');
INSERT INTO teacher (name, address, hire_date) VALUES 
('李四', '北京', '2019-03-22'),
('王五', '上海', '2021-07-01');

-- 查詢
SELECT * FROM teacher;
SELECT name, hire_date FROM teacher WHERE address = '深圳';

-- 更新
UPDATE teacher SET address = '廣州' WHERE name = '張三';

-- 刪除
DELETE FROM teacher WHERE name = '李四';
TRUNCATE TABLE teacher;  -- 快速清空全表(不可回滾)

六、實用查詢技巧

  • 分頁:SELECT * FROM teacher LIMIT 10 OFFSET 20;(第 3 頁,每頁 10 筆)
  • 排序:ORDER BY hire_date DESC
  • 聚合:SELECT address, COUNT(*) FROM teacher GROUP BY address;

七、備份與還原

# 備份單一資料庫
mysqldump -u root -p school > school_backup.sql

# 備份所有資料庫
mysqldump -u root -p --all-databases > full_backup.sql

# 還原
mysql -u root -p school < school_backup.sql

熟練這些核心操作,即可勝任 Linux 環境下 MySQL 的日常開發與運維工作。

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