mysql 权限 备份还原,MYSQL学习笔记09:备份还原,用户权限,外键

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

整个数据库数据备份也称为sql数据备份:备份的结果都是sql指令

在mysql中,提供了专门用于备份sql的客户端:msyqldump.exe

dd8b450f4d1d2cbea9c1597343379f6a.png

SQL备份是mysql的一种非常常见的备份和还原方法.SQL备份不仅备份数据,还备份相应的sql指令(表结构):即使数据库被破坏(删除数据库),然后使用sql备份仍然可以实现数据还原。

SQL备份需要备份结构:生成的备份文件特别大,因此它不适合于非常大的数据备份,也不适合于频繁更改数据的数据库。

sql备份使用特殊的备份客户端,因此尚未连接到数据库服务器。

基本语法:mysqldump-hPup数据库名称[表1 [表2…]]? \ gt;备份文件地址

共有三种备份形式:

1.整个数据库备份:备份整个数据库

65739b93aa06ee751ef8bbf4a4e39aaa.png

2.单个表备份:数据库后跟一个表

3.多表备份:数据库后面是多个表

535be7d7bd3bb073da6acc26679017e8.png

查看备份sql文件中的特定内容:

9105650496929b6e9cb14094509f9b52.png

mysql提供了多种实现方法

在mysqldump备份的数据中,数据库本身没有任何操作,所有操作都在表级别:执行数据还原(sql还原)时,必须指定数据库。

1.使用msyql客户端:登录之前,可以使用客户端直接还原

mysql-hPup数据库\ lt;文件位置

5e9b0d6c5635747f2f6a19bc3ba5e617.png

a89c423ae0a84d3e8b8e3c0f3812f8a7.png

2.在sql命令中,它提供了一种导入sql命令的方法

源sql文件位置;//必须先输入相应的数据库

6211805dcc2261339d827ea5c9d66638.png

3.人工操作:打开备份文件,复制所有sql指令,然后将其粘贴并执行在mysql.exe客户端中。 (不推荐)

用户权限管理:在不同的项目中赋予不同的角色(开发人员)不同的操作权限,以确保数据库数据的安全性。

通常,用户的密码不会长时间更改,因此有必要经常更改数据库用户的密码,以确保用户的安全(mysql客户端用户)

mysql需要客户端连接身份验证才能执行服务器操作:需要用户信息。

mysql中的所有用户信息都存储在mysql数据库下的user表中。

07ff11efe0cec01147bc633c177b1dbc.png

默认情况下,在安装mysql时,如果不选择创建匿名用户,则意味着所有用户只有一个:root超级用户

192482c257a85395ab64b87e7ae40d82.png

在mysql中,在用户管理中,相应的主机和用户共同构成区分用户的主键。

用户:代表用户的用户名。

host:代表本质上允许访问的客户端(IP或主机地址)。如果主机使用*,则可以访问所有(客户端)。

从理论上讲,有两种创建用户的方法:

1.以root用户权限(不推荐)将记录插入mysql.user表;

2.专门创建用户的sql命令:

基本语法:创建由”明文密码”标识的用户名;//确定:英[adent? F A? d]美[adent? F A? d]

使用用户:username @ hostaddress;

主机地址:””或”%”//””是空的”%”?两者都代表任何主机,即*,对主机名没有限制。主机localhost只能是本地用户访问权限。

78092c0009798c2e6e923beeb3aeacf1.png

上面的示例创建一个对主机名没有限制的用户” user1″,密码为123456。我们检查mysql.user表中是否有新用户:

fa1d0041eb48a57288fa03e2303c8cf5.png

现在,我们简化了用户的创建过程(不建议这样做,因为它是不安全的:任何人都可以访问并且不需要密码):

格式为:创建用户用户名;

a13b2fb16129540dc2a3375aff56c0a4.png

我们以新用户身份登录mysql:

88deac5adb7964de5e96ae22474061bb.png

如上所述,您可以不使用密码登录mysql

注意:mysql中的用户自己携带主机(唯一)

基本语法:删除用户名@ host;

d590d10822e0b00dcba559e98f3d0acd.png

如上所述,刚刚创建的user2用户已被删除。由于user2是在没有@host(即任何主机名)的情况下创建的,因此您不能在user2之后添加@host。

mysql中提供了多种修改方法:基本上,必须使用相应的系统函数password()

此功能需要对密码进行加密。

1.使用命令专门更改密码:

基本语法:为用户设置密码=密码(”新明文密码”);

3dfe01c512cca990620ffd1d8011a1e1.png

修改后进行测试,使用新密码登录用户:

eb7e19aa3125dec3cba8d1cb42edd497.png

2.使用更新语句update修改表:(不推荐)

基本语法:更新mysql.user设置密码=密码(”新明文密码”),其中user =””和host =””;

在mysql中,优先级管理分为三类:

1.数据权限:添加,删除和修改检查(选择,更新,删除,插入添加)

2.结构许可:结构操作(创建,删除)

3.管理权限:权限管理(创建用户,授予,撤消):通常是管理员的权限

向指定用户分配权限

基本语法:授予数据库权限列表。表名?给用户//数据库和表名可以使用*通配符,表示所有

特权列表:使用逗号分隔,但是您可以使用所有特权代表所有特权。

数据库。表名称:它可以是单个表(数据库表),特定数据库(数据库*)或整个数据库(*。*)

bd515efcb37b6a5204a53de45f8c8330.png

6a73d15c0d1d44a3797e62cbb30c10e9.png

用户user1被分配权限后立即生效。使用此用户身份可以按如下方式查看数据库和表:

b74744e7f205e5e34417961639c43b4b.png

4a2fdd9bc20e2b1c4cdccf0b49e3c8bf.png

如上所述,因为仅向用户分配了my_student表权限,所以只能看到该表。 (实际上,库中有多个表)

我们测试并尝试使用用户标识删除my_student表,但失败了。因为用户仅具有对该表的查看权限。

72a86cb7e74b0189ecf6b34a641fe2e2.png

权限恢复:从用户那里收回权限。

基本语法:撤消权限列表/数据库上的所有特权。用户表;//可用的数据库和表*通配符

1bcadf64ef3d515eb2bd26d053aa69b1.png

上面的示例撤消了用户权限。

现在,我们尝试以user1身份查看,但结果失败。如下:

c0cfa7389ab1c53fe01809f00cb0cdb1.png

管理员更改了用户的操作权限后,尽管用户权限效果立即生效,但此时可能无法立即同步(存储)到mysql系统表中…

刷新:刷新。刷新用户的当前权限操作。将操作的特定内容同步(存储/更新)到相应的mysql系统表。

基本语法:刷新权限;

db129a2b9a731c6c1829c9c470f3f8d5.png

1.停止mysql服务;

60a0d8c00cf0e9ab1d64f01dd8279c37.png

2.重新启动服务

mysqld–skip-grant-tables//启动服务器,跳过权限

737d51cf52d6d6e15e1130849ea0b554.png

3.服务器目前不具有权限的概念:非常危险,任何客户端都可以直接登录而无需任何用户信息,并且具有root权限。

1d43726d9f28e5edc20220c06ea78932.png

4.更改root用户的密码:指定root @ localhost的密码

17a0ee431d694c4777f4c882ed905a4f.png

5.快速关闭服务器并重新启动服务:

8cb9cce8a2c9e9eb69c8808743cf3841.png

如果公钥是关系中的主键,则公钥称为另一个关系的外键。由此可见,外键代表两个关系之间的相关关系。具有外键作为主键的表称为主表,具有外键的表称为主表的从表。外键也称为外键。

表A有一个字段,保存的值指向另一个表B的主键

B:主表//此表的主键

A:从表//此表的外键不是该表的主键,而是表B的主键

mysql提供了两种增加外键的方法。

1.创建表时添加外键

基本语法:在字段之后添加1条语句:

[约束”外键名称”]外键(外键字段)引用主表(主键);

约束约束,约束?英文[k? n?压力? nt]美国[k? n?压力? nt]

参考参考,参考?英[?刷新? ns? z]美国[?刷新? ns? z]

55cf1018d63648ab45b0b89bc80bde3b.png

MUL:多索引,外键本身是一个索引,并且外键要求外键字段本身也是一个普通索引。

b36b6f37dc3da56a9f698d214aa2ebe6.png

如上所述,观察表结构。系统会自动完成外键名称等。

2.创建表后添加外键

alter table添加[约束`foreign key name`]外键(foreign key字段)参考主表(主键);

示例:现在,我们想向学生表的class_id添加一个外键,以指向课程表中的class_id

9d479920d7d0733242ab2a9cfd7ab704.png

c890fa2ba575f81c6df3e9b0975b03ac.png

设置外键生效,我们使用show create table命令查看表结构。如下:

30a9c19f3a349bbfa0de7e7e128cc99e.png

注意:不能修改外键!因此,只有首先删除,然后添加!

语法:alter table drop table中的外键名称;

23b5a40fff58940b49fd90c95bba472f.png

如上所述,外键已被删除,为什么是class_id,为什么键仍然是mul(多索引)?

15c5e311c2dc7faf84560cf298ccc29b.png

删除外键时,只会删除外键本身,并且不会删除创建外键时自动生成的索引。

如果要删除相应的索引:alter table表名drop index索引名;

1.外键字段需要确保关联的主表的主键字段的类型为完全一致

2.基本属性也应该相同。

3.如果在表之后添加外键,则对数据有某些要求。 (表中的数据与主表之间的关联)

4.外键只能使用innodb存储引擎,myisam存储引擎不支持外键。

外键约束:建立外键关系后,主表和从表将具有一定的数据约束效率。

1.生成外键时:外键所在的表(从表)将受到主表中数据的存在的影响,导致数据无法执行某些不符合要求的操作符合规范(不能插入主表中不存在的数据)

2.如果一个表被其他表外键引用,则该表的数据操作不能是任意的,并且必须保证该表中数据的有效性(您不能随机删除该表中引用的记录)

f50cff1ec8325adc30915abfada5388a.png

如上面的表1所示,它是一个从表,而类表是主表。我们计划比较正确和不正确的两个数据。

9b7a3a76a63f5dd1c7b5611bb26f9375.png

b898c0e9335ce4b8c949603b504d8da6.png

因为主表(类表)中没有4个移位,所以从该表插入4个移位的数据是错误的。

现在,我们要删除刚刚从表中插入的数据:

053d053eaebb4da4ec26bc6ed11b766c.png

如上所述,您不能删除类表数据主表。这就是约束。

创建外键时,我们可以对外键约束执行选择性操作。

基本语法:在约束模式下添加外键(外键字段)引用主表(主键);

限制模式:

1.地区:严格模式。默认?-?不允许操作

2.级联:级联模式,可以一起操作吗?主表更改,从表数据更改

3.设置为null:设置为空模式吗?主表更改(删除)后,从表的对应记录设置为空:前提是从表的外键字段允许为空

外键约束的主要约束是主表的操作:从表不能插入主表中不能存在的数据。

通常在约束时,您需要指定操作:更新和删除

通用约束模式:在更新级联上吗?更新级联,删除设置为null?删除为空。

示例:我们在类表和学生表中添加了外键,请注意以下约束命令

e50af38ac21a3f9477d48cf5e714a850.png

c8a92f8ca7d64f4e2584e43e329308e2.png

现在,我们检查约束关系,例如,将主表的类表中的类ID2更改为4,然后查看其效果如何:

7292ea65b5603742cabf5399503d0ce5.png

如上所述,当我们将主表数据中的类ID从第2类更改为第4类时,student表中的所有2个类都会自动更改为第4类。这是由于外键约束更新级联?更新级联,

删除模式:现在,我们尝试删除类表中类ID为4的数据,如下所示:

9e7195140cf8a8b3bada63e47b9cc6f5.png

如上所述,student表中原始班级ID 4的数据自动更新为null,这是因为删除集上的外键约束是否为null?删除为空。

确保数据的完整性:主表和从表中的数据必须一致。

注意:正是因为外键具有非常强大的数据约束,并且可能导致数据在背景中发生变化无法控制。在设计和开发逻辑时,无法很好地掌握数据(业务),因此很少使用外键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值