权限管理和备份
前言
这一节学习的是 MySQL数据库的权限管理和备份。学习了解即可!
1、用户管理
SQLyog 可视化管理
SQL 命令操作
用户表:mysql.user
本质:对这张表进行增删改查,进行用户的删除/添加,用户权限修改
创建/删除用户
-- 创建用户 create user 用户名 identified by ‘密码’
CREATE USER woodwhale IDENTIFIED BY '123456'
-- 删除用户
DROP USER woodwhale
-- 修改密码(修改当前用户密码)
SET PASSWORD = PASSWORD('666666')
-- 修改密码(修改指定用户密码)
SET PASSWORD FOR woodwhale = PASSWORD('123456')
-- 重命名 rename user 旧名 to 新名
RENAME USER woodwhale TO woodwhale2
授/撤权用户
-- 用户授权 all privilege 全部权限, 库.表
GRANT ALL PRIVILEGES ON *.* TO woodwhale
-- 这个被授'所有'权力的用户.没有更改其他用户的权限
-- 权限查询
SHOW GRANTS FOR woodwhale -- 查看指定用户的权限
SHOW GRANTS FOR root@localhost -- 查看root权限
-- root用户权限如下
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
-- 撤销权限 remove 哪个权限 ,哪个库撤销,给谁撤销
REMOVE ALL PRIVILEGES ON *.* FROM woodwhale
权限解释
-- 权限列表
ALL [PRIVILEGES] -- 设置除GRANT OPTION之外的所有简单权限
ALTER -- 允许使用ALTER TABLE
ALTER ROUTINE -- 更改或取消已存储的子程序
CREATE -- 允许使用CREATE TABLE
CREATE ROUTINE -- 创建已存储的子程序
CREATE TEMPORARY TABLES -- 允许使用CREATE TEMPORARY TABLE
CREATE USER -- 允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。
CREATE VIEW -- 允许使用CREATE VIEW
DELETE -- 允许使用DELETE
DROP -- 允许使用DROP TABLE
EXECUTE -- 允许用户运行已存储的子程序
FILE -- 允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE
INDEX -- 允许使用CREATE INDEX和DROP INDEX
INSERT -- 允许使用INSERT
LOCK TABLES -- 允许对您拥有SELECT权限的表使用LOCK TABLES
PROCESS -- 允许使用SHOW FULL PROCESSLIST
REFERENCES -- 未被实施
RELOAD -- 允许使用FLUSH
REPLICATION CLIENT -- 允许用户询问从属服务器或主服务器的地址
REPLICATION SLAVE -- 用于复制型从属服务器(从主服务器中读取二进制日志事件)
SELECT -- 允许使用SELECT
SHOW DATABASES -- 显示所有数据库
SHOW VIEW -- 允许使用SHOW CREATE VIEW
SHUTDOWN -- 允许使用mysqladmin shutdown
SUPER -- 允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。
UPDATE -- 允许使用UPDATE
USAGE -- “无权限”的同义词
GRANT OPTION -- 允许授予权限
/* 表维护 */
-- 分析和存储表的关键字分布
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ...
-- 检查一个或多个表是否有错误
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
-- 整理数据文件的碎片
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]
2、数据库备份
为什么要备份:
- 保障重要数据不丢失
- 保障数据转移的安全性
MySQL数据库备份的方式
- 直接拷贝物理文件
- 在例如SQLyog 这种可视化工具中手动导出
- 使用命令行(cmd)导出 mysqldump
SQLyog备份导出
SQLyog导入
将sql文件拖入SQLyog中即可
cmd导出
导出表的格式
-- mysqldump -h 主机 -u 用户名 -p密码 数据库 表1 表2 表3 > 物理磁盘位置/文件名
导出数据库的格式
-- mysqldump -h 主机 -u 用户名 -p密码 数据库> 物理磁盘位置/文件名
cmd导入
-- 登录情况下,切换到指定的数据库
-- source 备份文件
source D:/a.sql
-- 在非登录情况下,直接导入
mysql -u用户名 -p密码 库名< 备份文件
后话
关于MySQL的权限管理和备份的知识就这么多了,有任何问题和错误欢迎在评论区指出,我会和小伙伴们讨论的!