登录和退出

bash
 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

数据库操作

mysql
 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();

表操作

mysql
 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;

数据操作

mysql
 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 对比

用户与权限

mysql
 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';

数据导入导出

bash
 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;

其他命令

mysql
 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';

注意事项 ⚠️

  1. 重要操作确认DROP/DELETE/TRUNCATE 前务必确认数据
  2. WHERE 条件警告UPDATE/DELETE 不加 WHERE 会修改整张表
  3. 权限最小化:用户权限遵循最小授权原则
  4. 生产环境备份:修改数据结构前必须备份数据
  5. 密码安全:避免在命令行明文输入密码(使用 -p 空参数提示输入)