《MySQL 常用管理命令》

《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 常用参考

阅读 — · 全站 —
🎸 我的歌单 0 首