一句话:MySQL 用户权限、改密与
mysqldump备份的常用命令速查表。
部署博客或多环境联调时,经常要 建库用户、授权、改密码、导出备份。本文整理个人项目中反复用到的 SQL 与 shell 命令,便于复制执行。执行前请确认库名、主机名与权限范围,避免误授 *.* 到生产。
SELECT User, Host FROM mysql.user;
Host 决定从哪里可连:localhost 仅本机,% 表示任意主机(需配合防火墙与白名单)。
-- 仅本机登录
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY 'xiaoming2048!@#';
-- 允许任意 IP(远程连接常用)
CREATE USER 'xiaoming'@'%' IDENTIFIED BY 'xiaoming2048!@#';
-- 授予单库全部权限
GRANT ALL PRIVILEGES ON dbname.* TO 'xiaoming'@'localhost';
-- 授予常用 DML + DDL(更安全)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON dbname.* TO 'xiaoming'@'localhost';
FLUSH PRIVILEGES;
| 权限 | 作用 |
|---|---|
| SELECT | 查询 |
| INSERT | 插入 |
| UPDATE | 更新 |
| DELETE | 删除 |
| CREATE | 建库建表 |
| DROP | 删库删表 |
| ALTER | 改表结构 |
| INDEX | 建索引 |
| GRANT OPTION | 可把已有权限再授给他人 |
原则:最小权限——应用账号一般不给 DROP、GRANT OPTION。
-- 指定用户
ALTER USER 'xiaoming'@'localhost' IDENTIFIED BY 'xiaoming1988!@#';
-- 当前登录用户
ALTER USER USER() IDENTIFIED BY 'xiaoming2077!@#';
MySQL 8 也可:
SET PASSWORD FOR 'xiaoming'@'localhost' = '新密码';
REVOKE ALL PRIVILEGES ON dbname.* FROM 'xiaoming'@'localhost';
DROP USER 'xiaoming'@'localhost';
FLUSH PRIVILEGES;
导出(mysqldump):
mysqldump -u root -p -h 10.1.33.238 dbname > backup.sql
仅结构 / 仅数据:
mysqldump -u root -p --no-data dbname > schema.sql
mysqldump -u root -p --no-create-info dbname > data.sql
还原:
mysql -u root -p dbname < backup.sql
| 参数 | 含义 |
|---|---|
-u |
用户名 |
-p |
提示输入密码 |
-h |
远程主机 |
dbname |
数据库名 |
'user'@'localhost' 与 'user'@'%' 是两个账号,改密、授权要指对 Host。FLUSH PRIVILEGES(部分版本 GRANT 已自动刷新,习惯保留一句无妨)。% 外,检查云安全组、MySQL bind-address、是否放行 3306。mysqldump 大库:加 --single-transaction(InnoDB)减少锁表;超大表考虑分表导出或物理备份。! 被 history 展开。SELECT User, Host FROM mysql.userFLUSH PRIVILEGESmysqldump … > backup.sql;还原:mysql … < backup.sql