MariaDB 入门教程
FreeGuideOnline
最新
2026-07-16
bash sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation # 执行安全配置脚本
安全脚本会引导你设置 root 密码、删除匿名用户、禁止远程 root 登录等。
### 在 macOS 上安装
```bash
brew install mariadb
brew services start mariadb
3. 连接到 MariaDB 服务器
MariaDB 使用与 MySQL 完全相同的客户端命令 mysql。
mysql -u 用户名 -p
输入密码后即可进入交互式命令行。出现 MariaDB [(none)]> 提示符表示连接成功。
常用连接选项
-h 主机地址:连接远程服务器,如-h 192.168.1.100-P 端口号:默认端口是 3306,修改时使用该选项-D 数据库名:直接进入指定数据库
4. 数据库基础操作
查看与创建数据库
-- 显示所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE mydb;
-- 创建时指定字符集(推荐)
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 切换数据库
USE mydb;
删除数据库
DROP DATABASE mydb;
警告:该操作不可逆,所有数据会被永久删除。
5. 表的管理
常用数据类型
| 数据类型 | 说明 |
|---|---|
| INT | 整数 |
| VARCHAR(N) | 可变长度字符串,N 为最大字符数 |
| TEXT | 长文本 |
| DATE | 日期 YYYY-MM-DD |
| DATETIME | 日期时间 |
| DECIMAL(M,D) | 精确小数,M 为总位数,D 为小数位数 |
创建表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
age INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
查看表结构
DESC users;
SHOW CREATE TABLE users;
修改表
-- 添加列
ALTER TABLE users ADD phone VARCHAR(20);
-- 修改列类型
ALTER TABLE users MODIFY age TINYINT;
-- 删除列
ALTER TABLE users DROP phone;
删除表
DROP TABLE users;
6. 数据操作:CRUD 基础
CRUD 指创建(Create)、读取(Read)、更新(Update)、删除(Delete),是数据库最核心的操作。
插入数据(Create)
-- 单条插入
INSERT INTO users (username, email, age) VALUES ('alice', 'alice@example.com', 25);
-- 多条插入
INSERT INTO users (username, email, age) VALUES
('bob', 'bob@example.com', 30),
('charlie', 'charlie@example.com', 28);
查询数据(Read)
-- 查询所有行
SELECT * FROM users;
-- 选择特定列
SELECT username, email FROM users;
-- 条件筛选
SELECT * FROM users WHERE age > 25;
-- 排序
SELECT * FROM users ORDER BY created_at DESC;
-- 限制返回行数
SELECT * FROM users LIMIT 5;
更新数据(Update)
UPDATE users SET age = 26 WHERE username = 'alice';
务必带上
WHERE子句,否则会更新全表!
删除数据(Delete)
DELETE FROM users WHERE id = 3;
同样,缺少 WHERE 会清空整个表。
7. 用户与权限管理
创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'your_password';
'localhost'表示该用户只能从本机连接,若需远程访问可改为'%'。
授权
-- 授予某数据库全部权限
GRANT ALL PRIVILEGES ON mydb.* TO 'newuser'@'localhost';
-- 授予特定表的查询和插入权限
GRANT SELECT, INSERT ON mydb.users TO 'newuser'@'localhost';
-- 应用更改
FLUSH PRIVILEGES;
查看权限
SHOW GRANTS FOR 'newuser'@'localhost';
撤销权限与删除用户
REVOKE ALL PRIVILEGES ON mydb.* FROM 'newuser'@'localhost';
DROP USER 'newuser'@'localhost';
8. 备份与恢复
数据安全至关重要,建议定期备份数据库。
使用 mysqldump 备份
mysqldump -u root -p mydb > mydb_backup.sql
这会生成一个包含所有建表语句和数据的 SQL 文件。
恢复数据库
mysql -u root -p mydb < mydb_backup.sql
如果数据库不存在,需先创建:
CREATE DATABASE mydb;
然后再执行恢复命令。
9. 常见问题与下一步
忘记 root 密码怎么办?
Linux 下可以通过跳过权限表启动 MariaDB 来重置:
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root
进入 MariaDB 后使用 ALTER USER 语句修改密码,然后正常重启服务。
如何提高查询性能?
- 为经常出现在
WHERE、JOIN中的列创建索引。
CREATE INDEX idx_username ON users(username);