2024.4.9 Tuesday
目录
8.权限管理和备份
8.1.用户管理
8.1.1.创建用户
-- 权限管理和备份 --
-- 创建用户:CREATE USER 用户名 IDENTIFIED BY '密码'
CREATE USER DDDDD IDENTIFIED BY '123456'
8.1.2.修改密码
8.1.2.1.修改当前用户密码
-- 修改密码(修改当前用户密码)
-- (旧版)5.5运行不了
SET PASSWORD('111111')
-- (新版)
ALTER USER 'kuangshen'@'%' IDENTIFIED BY '123456'
8.1.2.2.修改指定用户密码
-- 修改密码(修改指定用户密码)这行可以
SET PASSWORD FOR DDDDD = PASSWORD('111111')
8.1.3.重命名
RENAME USER 旧名字 TO 新名字
-- 重命名:RENAME USER 旧名字 TO 新名字(但是这个版本改不了)
RENAME USER 'DDDDD' TO 'QQQQ'
-- MySQL8要RENAME USER 'myuser'@'localhost' TO 'yan'@'localhost';
-- 修改端口RENAME USER 'xiaofu'@'localhost' TO 'xiaofu'@'%';
8.1.4.用户授权
(给所有的库、表授予全部权限,除了给其他用户授权的权限)
-- 用户授权(给所有的库、表授予全部权限,除了给其他用户授权的权限)
GRANT ALL PRIVILEGES ON *.* TO QQQQ
8.1.5.查询指定用户的权限
-- 查询指定用户的权限
SHOW GRANTS FOR QQQQ;
SHOW GRANTS FOR root@localhost; -- ROOT用户的权限是:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION
8.1.6.撤销权限 REVOKE 权限列表 ON 表名 FROM 用户名
-- 撤销权限 REVOKE 权限列表 ON 表名 FROM 用户名
REVOKE ALL PRIVILEGES ON *.* FROM QQQQ
8.1.7.删除用户
-- 删除用户
DROP USER QQQQ
8.1.8.权限解释
-- 权限列表
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] ...
8.2.MySQL备份
8.2.1.数据库备份的必要性
- 保证重要数据不丢失
- 数据转移
8.2.2.MySQL数据库备份方法
8.2.2.1.直接拷贝数据库文件和相关配置文件(MySQL文件夹data文件)
8.2.2.2.使用数据库管理工具
右键目标文件夹,按如图蓝色高亮操作
想要导入则选择‘运行SQL文件’(但是‘查询’里的语句不会被备份。注意!)
8.2.2.3.使用命令行
输入:mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql
将在D盘存储school数据库中表student的内容于名为a.sql的文件
想要恢复则先登录mysql然后导入:(白色高亮)
记得更换目标数据库,否则会出现‘ERROR 1046 (3D000): No database selected’
理论上全是OK才算导入成功
-- 导出
1. 导出一张表 -- mysqldump -uroot -p123456 school student >D:/a.sql
mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)
2. 导出多张表 -- mysqldump -uroot -p123456 school student result >D:/a.sql
mysqldump -u用户名 -p密码 库名 表1 表2 表3 > 文件名(D:/a.sql)
3. 导出所有表 -- mysqldump -uroot -p123456 school >D:/a.sql
mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)
4. 导出一个库 -- mysqldump -uroot -p123456 -B school >D:/a.sql
mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)
可以-w携带备份条件
-- 导入
1. 在登录mysql的情况下:-- source D:/a.sql
source 备份文件
2. 在不登录的情况下
mysql -u用户名 -p密码 库名 < 备份文件
8.2.3.mysqldump客户端
8.2.3.1.作用
- 转储数据库
- 搜集数据库进行备份
- 将数据转移到另一个SQL服务器,不一定是MySQL服务器