《MySQL 常用管理命令》
本文汇集 MySQL 日常运维中最常用的管理命令,包括安装、建库建表、用户与权限、数据导入导出、更新与清空数据等,命令第一,可直接复制使用。
1 安装与启动
# Debian / Ubuntu
apt-get install mysql-server
# 启动服务
systemctl start mysql
systemctl enable mysql
2 连接数据库
mysql -u root -p123456
mysql -h 192.168.1.10 -u root -p123456 -A
-A 表示禁用预读表信息,连接大库时更快。
3 数据库与表管理
CREATE DATABASE security; -- 创建数据库
USE security; -- 切换数据库
SHOW TABLES; -- 查看当前库中所有表
4 使用 SQL 文件创建表 / 导入数据
USE security;
SOURCE /path/to/table.sql;
SOURCE 在 mysql 客户端内执行一个 SQL 文件,常用来建表或导入数据。
5 用户管理与权限
5.1 常用权限
| 权限 | 作用 |
|---|---|
| ALL PRIVILEGES | 指定数据库(或全局)的全部权限 |
| CREATE | 创建新表或数据库 |
| DROP | 删除表或数据库 |
| DELETE | 删除表中的行 |
| INSERT | 向表中插入行 |
| SELECT | 使用 SELECT 读取数据 |
| UPDATE | 更新表行 |
| GRANT OPTION | 允许授予或回收其他用户的权限 |
5.2 创建用户并授予全部权限
CREATE USER 'andy'@'127.0.0.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'andy'@'127.0.0.1';
FLUSH PRIVILEGES;
5.3 授予部分权限
GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
5.4 修改用户密码
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
注意:FLUSH PRIVILEGES 使权限变更立即生效,尤其在 GRANT 后执行。
5 更新某个字段
UPDATE table_name SET column_name = 'new_value' WHERE condition;
- 字符串类型的新值必须用单引号括起来;布尔值和整型不需要。
- 例:把某域名对应的记录标记为逻辑删除。
UPDATE btol SET is_deleted = FALSE WHERE zone = 'example.org';
⚠️ 不要忘记 WHERE 条件,否则会更新整张表的指定字段。
6 清空表数据
TRUNCATE TABLE table_name; -- 快速清空,MySQL 内部会重建表
DELETE FROM table_name; -- 逐行删除,返回实际删除行数
TRUNCATE很快但不会逐行记录日志,MyISAM 表返回删除行数为 0,InnoDB 返回实际删除行数。DELETE相对较慢,但会返回删除的行数(MySQL >= 4.0)。
7 导出与导入
7.1 导出单表
mysqldump -h host -u username -pPassword database_name --tables table_name > table_name.sql
例(从远程库导出 security 库的 btol 表):
mysqldump -uroot -p123456 security --tables btol > btol.sql
7.2 导入到另一个库
mysql -h 192.168.1.10 -u root -p123456 -A
USE security; -- 切换到目标库
SOURCE btol.sql; -- 导入表结构与数据
8 常用参考
阅读 —
·
全站 —