MySQL
# 用户及权限管理
-- 创建新用户(localhost仅支持本地访问,%代表允许外网访问)
CREATE USER 'zhang'@'%' IDENTIFIED BY 'hanzhe';
-- 赋予该用户 test 库所有表的查询权限(SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP....)
GRANT SELECT ON test.* TO 'zhang'@'%';
-- 赋予该用户所有库所有表的所有权限,并允许该用户在权限范围内可以给其他用户授权
GRANT ALL PRIVILEGES ON *.* TO 'zhang'@'%' WITH GRANT OPTION;
-- 撤销该用户在所有库所有表中,给其他用户授权的权限
REVOKE GRANT OPTION ON *.* FROM 'zhang'@'%';
-- 撤销该用户所有库所有表的所有权限
REVOKE ALL PRIVILEGES ON *.* FROM 'zhang'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
-- 修改用户密码 MySQL8 之后的版本
ALTER USER 'zhang'@'%' IDENTIFIED BY '123456';
-- 修改用户密码 MySQL8 以前的版本
SET PASSWORD FOR 'zhang'@'%' = PASSWORD('123456');
-- 删除用户
DROP USER 'zhang'@'%';
# DUMP备份与恢复
数据导出
-- 导出test整个数据库(dddddump 为手动创建的文件夹)
mysqldump -uroot -p test > /var/lib/mysql/dddddump/test.sql
-- 导出test库的三张表
mysqldump -uroot -p test sys_user sys_role sys_menu > /var/lib/mysql/dddddump/test.sql
-- 更多参数(--也要加上)
mysqldump -uroot -p [OPTIONS] test > /var/lib/mysql/dddddump/test.sql
--no-data # 只导出表结构,不包含数据
--no-create-info # 只导出数据,不包含表结构
--add-drop-database # 在CREATE DATABASE前添加DROP DATABASE语句
--databases # 导出的SQL中包含建库语句(默认不包含)
--all-databases # 导出所有数据库
--skip-lock-tables # 不锁表(适合生产环境大表备份)
--single-transaction # 使用事务保证一致性(仅InnoDB)
--routines # 包含存储过程和函数
--triggers # 包含触发器
--events # 包含事件
数据导入
-- 先创建数据库,如果数据库已存在可跳过该步骤
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
-- 执行SQL文件还原数据库
mysql -u root -p test < /var/lib/mysql/dddddump/test.sql
上次更新: 2025-06-17, 13:53:15