用户管理

使用SQLyog 创建用户,并授予权限演示

基本命令

  1. /* 用户和权限管理 */ ------------------
  2. 用户信息表:mysql.user
  3. -- 刷新权限
  4. FLUSH PRIVILEGES
  5. -- 增加用户 CREATE USER kuangshen IDENTIFIED BY '123456'
  6. CREATE USER 用户名 IDENTIFIED BY [PASSWORD] 密码(字符串)
  7. - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
  8. - 只能创建用户,不能赋予权限。
  9. - 用户名,注意引号:如 'user_name'@'192.168.1.1'
  10. - 密码也需引号,纯数字密码也要加引号
  11. - 要在纯文本中指定密码,需忽略PASSWORD关键词。要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD
  12. -- 重命名用户
  13. RENAME USER kuangshen TO kuangshen2
  14. RENAME USER old_user TO new_user
  15. -- 设置密码
  16. SET PASSWORD = PASSWORD('密码') -- 为当前用户设置密码
  17. SET PASSWORD FOR 用户名 = PASSWORD('密码') -- 为指定用户设置密码
  18. -- 删除用户
  19. DROP USER kuangshen2
  20. DROP USER 用户名
  21. -- 分配权限/添加用户
  22. GRANT 权限列表 ON 表名 TO 用户名 [IDENTIFIED BY [PASSWORD] 'password']
  23. - all privileges 表示所有权限
  24. - *.* 表示所有库的所有表
  25. - 库名.表名 表示某库下面的某表
  26. -- 查看权限
  27. SHOW GRANTS FOR root@localhost;
  28. SHOW GRANTS FOR 用户名
  29. -- 查看当前用户权限
  30. SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
  31. -- 撤消权限
  32. REVOKE 权限列表 ON 表名 FROM 用户名
  33. REVOKE ALL PRIVILEGES, GRANT OPTION FROM 用户名 -- 撤销所有权限

权限解释

  1. -- 权限列表
  2. ALL [PRIVILEGES] -- 设置除GRANT OPTION之外的所有简单权限
  3. ALTER -- 允许使用ALTER TABLE
  4. ALTER ROUTINE -- 更改或取消已存储的子程序
  5. CREATE -- 允许使用CREATE TABLE
  6. CREATE ROUTINE -- 创建已存储的子程序
  7. CREATE TEMPORARY TABLES -- 允许使用CREATE TEMPORARY TABLE
  8. CREATE USER -- 允许使用CREATE USER, DROP USER, RENAME USERREVOKE ALL PRIVILEGES
  9. CREATE VIEW -- 允许使用CREATE VIEW
  10. DELETE -- 允许使用DELETE
  11. DROP -- 允许使用DROP TABLE
  12. EXECUTE -- 允许用户运行已存储的子程序
  13. FILE -- 允许使用SELECT...INTO OUTFILELOAD DATA INFILE
  14. INDEX -- 允许使用CREATE INDEXDROP INDEX
  15. INSERT -- 允许使用INSERT
  16. LOCK TABLES -- 允许对您拥有SELECT权限的表使用LOCK TABLES
  17. PROCESS -- 允许使用SHOW FULL PROCESSLIST
  18. REFERENCES -- 未被实施
  19. RELOAD -- 允许使用FLUSH
  20. REPLICATION CLIENT -- 允许用户询问从属服务器或主服务器的地址
  21. REPLICATION SLAVE -- 用于复制型从属服务器(从主服务器中读取二进制日志事件)
  22. SELECT -- 允许使用SELECT
  23. SHOW DATABASES -- 显示所有数据库
  24. SHOW VIEW -- 允许使用SHOW CREATE VIEW
  25. SHUTDOWN -- 允许使用mysqladmin shutdown
  26. SUPER -- 允许使用CHANGE MASTER, KILL, PURGE MASTER LOGSSET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections
  27. UPDATE -- 允许使用UPDATE
  28. USAGE -- “无权限”的同义词
  29. GRANT OPTION -- 允许授予权限
  30. /* 表维护 */
  31. -- 分析和存储表的关键字分布
  32. ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ...
  33. -- 检查一个或多个表是否有错误
  34. CHECK TABLE tbl_name [, tbl_name] ... [option] ...
  35. option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
  36. -- 整理数据文件的碎片
  37. OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

MySQL备份

数据库备份必要性

  • 保证重要数据不丢失
  • 数据转移

MySQL数据库备份方法

  • mysqldump备份工具
  • 数据库管理工具,如SQLyog,Navicat
  • 直接拷贝数据库文件和相关配置文件

mysqldump客户端
作用 :

  • 转储数据库
  • 搜集数据库进行备份
  • 将数据转移到另一个SQL服务器,不一定是MySQL服务器

image.png

  1. -- 导出
  2. 1. 导出一张表 -- mysqldump -uroot -p123456 school student >D:/a.sql
  3.   mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)
  4. 2. 导出多张表 -- mysqldump -uroot -p123456 school student result >D:/a.sql
  5.   mysqldump -u用户名 -p密码 库名 1 2 3 > 文件名(D:/a.sql)
  6. 3. 导出所有表 -- mysqldump -uroot -p123456 school >D:/a.sql
  7.   mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)
  8. 4. 导出一个库 -- mysqldump -uroot -p123456 -B school >D:/a.sql
  9.   mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)
  10. 可以-w携带备份条件
  11. -- 导入
  12. 1. 在登录mysql的情况下:-- source D:/a.sql
  13.   source 备份文件
  14. 2. 在不登录的情况下
  15.   mysql -u用户名 -p密码 库名 < 备份文件