首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MariaDB/MySQL 基礎操作完整手冊:從安裝到備份恢復

     編輯:MySQL 綜合教學

第 1 章:安裝與初始化

1.1 安裝 MariaDB (CentOS/RHEL)

yum install -y mariadb*

1.2 服務啟動與開機自啟

systemctl restart mariadb
systemctl enable mariadb

1.3 安全初始化

mysql_secure_installation

交互過程中:設定 root 密碼、移除匿名用戶、禁止 root 遠程登入、刪除 test 庫、重新載入權限表。除密碼設置外,其餘全部輸入 y 確認。

1.4 查看版本

SELECT VERSION();

第 2 章:數據庫級操作

操作SQL 語句
查看所有庫SHOW DATABASES;
創建庫 (UTF-8)CREATE DATABASE db_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
刪除庫DROP DATABASE db_name;
切換庫USE db_name;

第 3 章:常用數據類型速查表

3.1 日期時間類型

類型存儲格式範例說明
DATE3 字節2024-01-15日期
TIME3 字節14:30:00時間
DATETIME8 字節2024-01-15 14:30:00日期時間,無時區
TIMESTAMP4 字節1970-2038自動記錄修改時間,帶時區
YEAR1 字節2024年份

3.2 整數類型 (有符號範圍)

類型字節範圍
TINYINT1-128 ~ 127
SMALLINT2-32,768 ~ 32,767
MEDIUMINT3-8,388,608 ~ 8,388,607
INT4-2,147,483,648 ~ 2,147,483,647
BIGINT8±9.22×10¹⁸

3.3 浮點/定點類型

類型字節說明
FLOAT(M,D)4單精度,M 總位數,D 小數位
DOUBLE(M,D)8雙精度
DECIMAL(M,D)M+2定點數,以字符串存儲,精確計算首選

3.4 字符串類型

類型最大長度特點
CHAR(N)255 字符定長,補空格
VARCHAR(N)65,535 字符變長,需 1-2 字節存長度
TINYTEXT255 字符小文本
TEXT65,535 字符常用文本
MEDIUMTEXT16,777,215 字符中等文本
LONGTEXT4,294,967,295 字符大文本

第 4 章:表操作

4.1 創建表

CREATE TABLE `list` (
  `id` INT,
  `name` VARCHAR(50),
  `passwd` VARCHAR(100)
);

4.2 查看表結構

DESC table_name;

4.3 查看庫中所有表

SHOW TABLES;

4.4 刪除表

DROP TABLE table_name;

4.5 修改表 (ALTER TABLE)

操作語法
重命名表ALTER TABLE old_name RENAME new_name;
添加列ALTER TABLE tbl ADD col_name data_type;
刪除列ALTER TABLE tbl DROP COLUMN col_name;
修改列類型ALTER TABLE tbl MODIFY col_name new_type;
重命名列ALTER TABLE tbl CHANGE old_col new_col data_type;

第 5 章:數據增刪改查 (CRUD)

5.1 插入數據

-- 全列插入
INSERT INTO tbl VALUES (1, 'zhangsan', 'pass123');

-- 指定列插入
INSERT INTO tbl (name, passwd) VALUES ('lisi', 'pass456');

5.2 查詢數據

-- 全列
SELECT * FROM tbl;

-- 指定列
SELECT name, passwd FROM tbl;

5.3 條件查詢 (WHERE)

SELECT * FROM tbl WHERE id = 3;
SELECT * FROM tbl WHERE id > 3;
SELECT * FROM tbl WHERE id <> 3;  -- 不等於
SELECT * FROM tbl WHERE id >= 3;

5.4 刪除數據

-- 刪除所有 (慎用)
DELETE FROM tbl;

-- 條件刪除
DELETE FROM tbl WHERE id = 3;
-- 字符串需加單引號
DELETE FROM tbl WHERE name = 'zhangsan';

5.5 更新數據

UPDATE tbl SET passwd = 'newpass' WHERE id = 3;

5.6 去重 (DISTINCT)

SELECT DISTINCT name FROM tbl;

5.7 邏輯組合 (AND / OR)

SELECT * FROM tbl WHERE name = 'zhangsan' AND id = 1;
SELECT * FROM tbl WHERE name = 'zhangsan' OR id = 0;

5.8 排序 (ORDER BY)

-- 升序
SELECT * FROM tbl ORDER BY id;
-- 降序
SELECT * FROM tbl ORDER BY id DESC;

第 6 章:用戶與權限管理

6.1 用戶操作

-- 創建用戶
CREATE USER 'luigi'@'%' IDENTIFIED BY 'redhat-passwd';
FLUSH PRIVILEGES;

-- 刪除用戶
DROP USER 'luigi'@'%';
FLUSH PRIVILEGES;

-- 重命名用戶
RENAME USER 'luigi'@'%' TO 'natasha'@'%';
FLUSH PRIVILEGES;

-- 修改密碼 (當前用戶)
SET PASSWORD = PASSWORD('newpass');
FLUSH PRIVILEGES;

-- 修改指定用戶密碼
SET PASSWORD FOR 'zhangsan'@'%' = PASSWORD('newpass');
FLUSH PRIVILEGES;

6.2 權限層級與授權 (GRANT/REVOKE)

層級範例
全局GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pass';
庫級GRANT SELECT ON db_name.* TO 'user'@'localhost';
表級GRANT INSERT, UPDATE ON db_name.tbl TO 'user'@'%';
列級GRANT SELECT (col1, col2) ON db_name.tbl TO 'user'@'%';
-- 撤銷權限
REVOKE ALL PRIVILEGES FROM 'luigi'@'%';
FLUSH PRIVILEGES;

-- 主機通配符授權
GRANT ALL PRIVILEGES ON *.* TO 'luigi'@'%.example.com' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

第 7 章:Root 密碼找回 (MariaDB/MySQL 通用)

# 1. 停止服務
systemctl stop mariadb

# 2. 跳過授權表啟動
mysqld_safe --skip-grant-tables --user=mysql &

# 3. 免密登入修改密碼
mysql -u root
UPDATE mysql.user SET Password = PASSWORD('新密碼') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
\q

# 4. 正常重啟
mysqladmin -u root -p shutdown  # 輸入新密碼
systemctl restart mariadb

第 8 章:備份與恢復

8.1 備份單庫

mysqldump -u root -p db_name > /backup/path/db_name.sql

8.2 恢復單庫

mysql -u root -p db_name < /backup/path/db_name.sql

總結

本手冊涵蓋了 MariaDB/MySQL 從安裝、數據類型、表操作、CRUD、用戶權限到備份恢復的核心基礎操作。建議初學者按章節實操練習,重點掌握:

  • 數據類型選擇原則 (如金額用 DECIMAL、長文本用 TEXT)
  • ALTER TABLE 修改表結構的各種語法
  • GRANT 權限最小化原則
  • mysqldump 邏輯備份與恢復流程
  • Root 密碼找回的標準步驟

熟練這些基礎,是進階 SQL 優化、架構設計的基石。

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