在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
整个数据库数据备份也称为sql数据备份:备份的结果都是sql指令
在mysql中,提供了专门用于备份sql的客户端:msyqldump.exe
SQL备份是mysql的一种非常常见的备份和还原方法.SQL备份不仅备份数据,还备份相应的sql指令(表结构):即使数据库被破坏(删除数据库),然后使用sql备份仍然可以实现数据还原。
SQL备份需要备份结构:生成的备份文件特别大,因此它不适合于非常大的数据备份,也不适合于频繁更改数据的数据库。
sql备份使用特殊的备份客户端,因此尚未连接到数据库服务器。
基本语法:mysqldump-hPup数据库名称[表1 [表2…]]? \ gt;备份文件地址
共有三种备份形式:
1.整个数据库备份:备份整个数据库
2.单个表备份:数据库后跟一个表
3.多表备份:数据库后面是多个表
查看备份sql文件中的特定内容:
mysql提供了多种实现方法
在mysqldump备份的数据中,数据库本身没有任何操作,所有操作都在表级别:执行数据还原(sql还原)时,必须指定数据库。
1.使用msyql客户端:登录之前,可以使用客户端直接还原
mysql-hPup数据库\ lt;文件位置
2.在sql命令中,它提供了一种导入sql命令的方法
源sql文件位置;//必须先输入相应的数据库
3.人工操作:打开备份文件,复制所有sql指令,然后将其粘贴并执行在mysql.exe客户端中。 (不推荐)
用户权限管理:在不同的项目中赋予不同的角色(开发人员)不同的操作权限,以确保数据库数据的安全性。
通常,用户的密码不会长时间更改,因此有必要经常更改数据库用户的密码,以确保用户的安全(mysql客户端用户)
mysql需要客户端连接身份验证才能执行服务器操作:需要用户信息。
mysql中的所有用户信息都存储在mysql数据库下的user表中。
默认情况下,在安装mysql时,如果不选择创建匿名用户,则意味着所有用户只有一个:root超级用户
在mysql中,在用户管理中,相应的主机和用户共同构成区分用户的主键。
用户:代表用户的用户名。
host:代表本质上允许访问的客户端(IP或主机地址)。如果主机使用*,则可以访问所有(客户端)。
从理论上讲,有两种创建用户的方法:
1.以root用户权限(不推荐)将记录插入mysql.user表;
2.专门创建用户的sql命令:
基本语法:创建由”明文密码”标识的用户名;//确定:英[adent? F A? d]美[adent? F A? d]
使用用户:username @ hostaddress;
主机地址:””或”%”//””是空的”%”?两者都代表任何主机,即*,对主机名没有限制。主机localhost只能是本地用户访问权限。
上面的示例创建一个对主机名没有限制的用户” user1″,密码为123456。我们检查mysql.user表中是否有新用户:
现在,我们简化了用户的创建过程(不建议这样做,因为它是不安全的:任何人都可以访问并且不需要密码):
格式为:创建用户用户名;
我们以新用户身份登录mysql:
如上所述,您可以不使用密码登录mysql
注意:mysql中的用户自己携带主机(唯一)
基本语法:删除用户名@ host;
如上所述,刚刚创建的user2用户已被删除。由于user2是在没有@host(即任何主机名)的情况下创建的,因此您不能在user2之后添加@host。
mysql中提供了多种修改方法:基本上,必须使用相应的系统函数password()
此功能需要对密码进行加密。
1.使用命令专门更改密码:
基本语法:为用户设置密码=密码(”新明文密码”);
修改后进行测试,使用新密码登录用户:
2.使用更新语句update修改表:(不推荐)
基本语法:更新mysql.user设置密码=密码(”新明文密码”),其中user =””和host =””;
在mysql中,优先级管理分为三类:
1.数据权限:添加,删除和修改检查(选择,更新,删除,插入添加)
2.结构许可:结构操作(创建,删除)
3.管理权限:权限管理(创建用户,授予,撤消):通常是管理员的权限
向指定用户分配权限
基本语法:授予数据库权限列表。表名?给用户//数据库和表名可以使用*通配符,表示所有
特权列表:使用逗号分隔,但是您可以使用所有特权代表所有特权。
数据库。表名称:它可以是单个表(数据库表),特定数据库(数据库*)或整个数据库(*。*)
用户user1被分配权限后立即生效。使用此用户身份可以按如下方式查看数据库和表:
如上所述,因为仅向用户分配了my_student表权限,所以只能看到该表。 (实际上,库中有多个表)
我们测试并尝试使用用户标识删除my_student表,但失败了。因为用户仅具有对该表的查看权限。
权限恢复:从用户那里收回权限。
基本语法:撤消权限列表/数据库上的所有特权。用户表;//可用的数据库和表*通配符
?
上面的示例撤消了用户权限。
现在,我们尝试以user1身份查看,但结果失败。如下:
管理员更改了用户的操作权限后,尽管用户权限效果立即生效,但此时可能无法立即同步(存储)到mysql系统表中…
刷新:刷新。刷新用户的当前权限操作。将操作的特定内容同步(存储/更新)到相应的mysql系统表。
基本语法:刷新权限;
1.停止mysql服务;
2.重新启动服务
mysqld–skip-grant-tables//启动服务器,跳过权限
3.服务器目前不具有权限的概念:非常危险,任何客户端都可以直接登录而无需任何用户信息,并且具有root权限。
4.更改root用户的密码:指定root @ localhost的密码
5.快速关闭服务器并重新启动服务:
如果公钥是关系中的主键,则公钥称为另一个关系的外键。由此可见,外键代表两个关系之间的相关关系。具有外键作为主键的表称为主表,具有外键的表称为主表的从表。外键也称为外键。
表A有一个字段,保存的值指向另一个表B的主键
B:主表//此表的主键
A:从表//此表的外键不是该表的主键,而是表B的主键
mysql提供了两种增加外键的方法。
1.创建表时添加外键
基本语法:在字段之后添加1条语句:
[约束”外键名称”]外键(外键字段)引用主表(主键);
约束约束,约束?英文[k? n?压力? nt]美国[k? n?压力? nt]
参考参考,参考?英[?刷新? ns? z]美国[?刷新? ns? z]
MUL:多索引,外键本身是一个索引,并且外键要求外键字段本身也是一个普通索引。
如上所述,观察表结构。系统会自动完成外键名称等。
2.创建表后添加外键
alter table添加[约束`foreign key name`]外键(foreign key字段)参考主表(主键);
示例:现在,我们想向学生表的class_id添加一个外键,以指向课程表中的class_id
设置外键生效,我们使用show create table命令查看表结构。如下:
注意:不能修改外键!因此,只有首先删除,然后添加!
语法:alter table drop table中的外键名称;
如上所述,外键已被删除,为什么是class_id,为什么键仍然是mul(多索引)?
删除外键时,只会删除外键本身,并且不会删除创建外键时自动生成的索引。
如果要删除相应的索引:alter table表名drop index索引名;
1.外键字段需要确保关联的主表的主键字段的类型为完全一致
2.基本属性也应该相同。
3.如果在表之后添加外键,则对数据有某些要求。 (表中的数据与主表之间的关联)
4.外键只能使用innodb存储引擎,myisam存储引擎不支持外键。
外键约束:建立外键关系后,主表和从表将具有一定的数据约束效率。
1.生成外键时:外键所在的表(从表)将受到主表中数据的存在的影响,导致数据无法执行某些不符合要求的操作符合规范(不能插入主表中不存在的数据)
2.如果一个表被其他表外键引用,则该表的数据操作不能是任意的,并且必须保证该表中数据的有效性(您不能随机删除该表中引用的记录)
如上面的表1所示,它是一个从表,而类表是主表。我们计划比较正确和不正确的两个数据。
因为主表(类表)中没有4个移位,所以从该表插入4个移位的数据是错误的。
现在,我们要删除刚刚从表中插入的数据:
如上所述,您不能删除类表数据主表。这就是约束。
创建外键时,我们可以对外键约束执行选择性操作。
基本语法:在约束模式下添加外键(外键字段)引用主表(主键);
限制模式:
1.地区:严格模式。默认?-?不允许操作
2.级联:级联模式,可以一起操作吗?主表更改,从表数据更改
3.设置为null:设置为空模式吗?主表更改(删除)后,从表的对应记录设置为空:前提是从表的外键字段允许为空
外键约束的主要约束是主表的操作:从表不能插入主表中不能存在的数据。
通常在约束时,您需要指定操作:更新和删除
通用约束模式:在更新级联上吗?更新级联,删除设置为null?删除为空。
示例:我们在类表和学生表中添加了外键,请注意以下约束命令
现在,我们检查约束关系,例如,将主表的类表中的类ID2更改为4,然后查看其效果如何:
如上所述,当我们将主表数据中的类ID从第2类更改为第4类时,student表中的所有2个类都会自动更改为第4类。这是由于外键约束更新级联?更新级联,
删除模式:现在,我们尝试删除类表中类ID为4的数据,如下所示:
如上所述,student表中原始班级ID 4的数据自动更新为null,这是因为删除集上的外键约束是否为null?删除为空。
确保数据的完整性:主表和从表中的数据必须一致。
注意:正是因为外键具有非常强大的数据约束,并且可能导致数据在背景中发生变化无法控制。在设计和开发逻辑时,无法很好地掌握数据(业务),因此很少使用外键。