登录和退出
1
2
3
4
5
6
7
8
9
10
|
# 登录 (回车后输密码)
mysql -u 用户名 -p
# 远程登录 (示例)
mysql -h 192.168.1.100 -u root -P 3306 -p
# 退出 MySQL
exit
# 或
\q
|
数据库操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE dbname;
-- 删除数据库
DROP DATABASE dbname;
-- 选择数据库
USE dbname;
-- 查看当前数据库
SELECT DATABASE();
|
表操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-- 查看所有表
SHOW TABLES;
-- 创建表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看表结构
DESCRIBE users;
-- 或
DESC users;
-- 删除表
DROP TABLE users;
-- 重命名表
RENAME TABLE old_name TO new_name;
|
数据操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-- 插入数据
INSERT INTO users (name, email)
VALUES
('张三', 'zhangsan@example.com'),
('李四', 'lisi@test.com');
-- 查询数据
SELECT * FROM users;
SELECT name, email FROM users WHERE id > 10;
-- 更新数据
UPDATE users SET email = 'new@mail.com' WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id= 100;
-- 清空表
TRUNCATE TABLE users;
|
DELETE 与 TRUNCATE 的异同请参考文章 DELETE 与 TRUNCATE 对比
用户与权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-- 创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
-- 授予权限
GRANT SELECT, INSERT ON dbname.* TO 'user'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
-- 撤销权限
REVOKE DELETE ON dbname.* FROM 'user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 删除用户
DROP USER 'olduser'@'localhost';
|
数据导入导出
1
2
3
4
5
6
7
8
9
10
11
|
# 导出整个数据库 (命令行执行)
mysqldump -u root -p dbname > backup.sql
# 导出单个表 (以 `users` 表为例)
mysqldump -u root -p dbname users > users.sql
# 导入数据 (MySQL 内)
SOURCE /path/to/backup.sql
# 导入数据 (命令行)
mysql -u root -p dbname < data.sql;
|
其他命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-- 查看 MySQL 版本
SELECT VERSION();
-- 显示当前时间
SELECT NOW();
-- 查看进程列表
SHOW PROCESSLIST;
-- 终止查询
KILL [进程ID];
-- 修改密码
ALTER USER 'user'@'localhost' IDENTIFIED BY 'new_password';
|
注意事项 ⚠️
- 重要操作确认:
DROP/DELETE/TRUNCATE 前务必确认数据
WHERE 条件警告:UPDATE/DELETE 不加 WHERE 会修改整张表
- 权限最小化:用户权限遵循最小授权原则
- 生产环境备份:修改数据结构前必须备份数据
- 密码安全:避免在命令行明文输入密码(使用
-p 空参数提示输入)