收藏 分销(赏)

项目9--维护学生信息管理数据库的安全性.pptx

上传人:w****g 文档编号:7521119 上传时间:2025-01-07 格式:PPTX 页数:86 大小:518.26KB 下载积分:16 金币
下载 相关 举报
项目9--维护学生信息管理数据库的安全性.pptx_第1页
第1页 / 共86页
项目9--维护学生信息管理数据库的安全性.pptx_第2页
第2页 / 共86页


点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,湖北财税职业学院,信息工程系,Click to edit Master title style,MySQL,数据库原理及应用,项目,9,维护学生信息管理数据库的安全性,学习目标:,了解MySQL的权限系统,掌握MySQL的用户管理和权限管理的方法,掌握各种数据备份和数据还原的方法,掌握数据库迁移的方法,掌握数据的导入与导出的方法,了解什么是MySQL日志,掌握MySQL日志的用法,任务,9-1,了解,MySQL的权限系统,【任务分析】,想确保数据库的安全性,首先要了解MySQL的访问控制系统。明确MySQL权限系统的工作原理,熟悉其权限操作,为数据库提供安全性保护打下基础。,【,课堂,任务】,本次任务要理解MySQL的安全机制。,权限表,MySQL,权限系统的工作原理,任务9-1,了解,MySQL的权限系统,(一)权限表,MySQL是一个多用户数据库管理系统,具有功能强大的访问控制系统,可以为不同用户指定允许的权限。掌握其授权机制是开始操作MySQL数据库必须要走的第1步。下面对如何利用MySQL权限表的结构和服务器,并决定访问权限进行简单介绍。,任务9-1,了解,MySQL的权限系统,通过网络连接服务器的客户对,MySQL,数据库的访问由权限表内容来控制。这些表位于,mysql,数据库中,并在第,1,次安装,MySQL,的过程中初始化(运行,mysql_install_db,脚本)。权限表共有,5,个表:,user,、,db,、,tables_priv,、,columns_priv,和,procs_priv,。,当,MySQL,服务启动时,会首先读取,mysql,中的权限表,并将表中的数据装入内存。当用户进行存取操作时,,MySQL,会根据这些表中的数据做相应的权限控制。,任务9-1,了解,MySQL的权限系统,1,、,权限表,user,和,db,的结构和作用,(,1,),user,表。,user,表是,MySQL,中最重要的一个权限表,记录允许连接到服务器的账号信息。,user,表列出可以连接服务器的用户及其口令,并且指定他们有哪种全局(超级用户)权限。在,user,表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果用户启用了,DELETE,权限,则该用户可以从任何表中删除记录。,MySQL 5.5,中,user,表有,42,个字段,共分为,4,类,分别是用户列、权限列、安全列和资源控制列。,任务9-1,了解,MySQL的权限系统,(,2,),db,表。,db,表和,host,表也是,MySQL,数据库中非常重要的权限表。,db,表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。,host,表中存储了某个主机对数据库的操作权限,配合,db,权限表对给定主机上数据库级操作权限做更细致的控制。这个权限表不受,GRANT,和,REVOKE,语句的影响。,任务9-1,了解,MySQL的权限系统,2,、,tables_priv,表、,columns_priv,表和,procs_priv,表,tables_priv,表用来对表设置操作权限,,columns_priv,表用来对表的某一列设置权限,,procs_priv,表可以对存储过程和存储函数设置操作权限。,tables_priv,表、,columns_priv,表,和,procs_priv,任务9-1,了解,MySQL的权限系统,(二),MySQL,权限系统的工作原理,为了确保数据库的安全性与完整性,系统并不希望每个用户可以执行所有的数据库操作。当,MySQL,允许一个用户执行各种操作时,它将首先核实用户向,MySQL,服务器发送的连接请求,然后确认用户的操作请求是否被允许,。,MySQL,的访问控制分为两个阶段,:,连接,核实,阶段,请求,核实,阶段,任务9-1,了解,MySQL的权限系统,1,连接核实阶段,当用户试图连接,MySQL,服务器时,服务器基于用户提供的信息来验证用户身份,如果不能通过身份验证,服务器会完全拒绝该用户的访问。如果能够通过身份验证,则服务器接受连接,然后进入第,2,个阶段等待用户请求。,MySQL,使用,user,表中的,3,个字段(,Host,、,User,和,authentication_string,)进行身份检查,服务器只有在用户提供主机名、用户名和密码并与,user,表中对应的字段值完全匹配时才接受连接。,任务9-1,了解,MySQL的权限系统,2,请求核实阶段,一旦连接得到许可,服务器进入请求核实阶段。在这一阶段,,MySQL,服务器对当前用户的每个操作都进行权限检查,判断用户是否有足够的权限来执行它。用户的权限保存在,user,、,db,、,tables_priv,或,columns_priv,权限表中。,在,MySQL,权限表的结构中,,user,表在最顶层,是全局级的。下面是,db,表和,host,表,它们是数据库层级的。最后才是,tables_priv,表和,columns_priv,表,它们是表级和列级的。低等级的表只能从高等级的表得到必要的范围或权限。,确认权限时,,MySQL,首先检查,user,表,如果指定的权限没有在,user,表中被授权,,MySQL,服务器将检查,db,表表,在该层级的,SELECT,权限允许用户查看指定数据库的所有表的数据。如果在该层级没有找到限定的权限,则,MySQL,继续检查,tables_priv,表以及,columns_priv,表。如果所有权限表都检查完毕,依旧没有找到允许的权限操作,,MySQL,服务器将返回错误信息,用户操作不能执行,操作失败。,任务9-1,了解,MySQL的权限系统,接收到用户操作请求,检查,user,表中权限,检查,db,表中权限,检查,tables_priv,表中权限,检查,columns_priv,表中权限,不允许用户执行该操作,执行用户,请求的操作,无,无,无,无,有,有,有,有,任务,9-2,管理,数据库用户权限,【任务分析】,通过用户管理,可以保证MySQL数据库的安全性。掌握MySQL用户管理和权限管理的相关知识,为数据库提供安全性保护打下基础。,【,课堂,任务】,本次任务需要掌握MySQL的用户权限管理机制。,用户管理,权限,管理,任务,9-2,管理数据库用户权限,(一)用户管理,MySQL的账户管理包括登录和退出MySQL服务器、创建用户、删除用户、密码管理和权限管理等内容。通过账户管理,可以保证MySQL数据库的安全性。,任务,9-2,管理数据库用户权限,1创建新用户,必须有相应的权限来执行创建操作。在MySQL数据库中,有3种方式创建新用户。,利用图形工具,,使用SQL语句(CREATE USER语句或GRANT语句),,直接操作MySQL权限表,最好的方法是前两种,因为操作更精确,错误少。,任务,9-2,管理数据库用户权限,1,创建新用户,(1)使用Navicat图形工具,(2)使用CREATE USER语句创建新用户。执行CREATE USER或GRANT语句时,服务器会有相应的用户权限表,添加或修改用户及其权限。CREATE USER语句的基本语法格式如下。,CREATE USER userIDENTIFIED BY PASSWORDpassword,userIDENTIFIED BY PASSWORDpassword,;,任务,9-2,管理数据库用户权限,【,例,9.1,】添加两个新用户,,king,的密码为,queen,,,palo,的密码为,530415,。,CREATE USER,kinglocalhost IDENTIFIED BY queen,palolocalhost IDENTIFIED BY 530415;,任务,9-2,管理数据库用户权限,CREATE USER banalocalhost,IDENTIFIED BY PASSWORD 440432;,【,例,9.2,】添加一个新用户,用户名为,bana,,密码为,440432,,不指定明文。操作步骤如下。,任务,9-2,管理数据库用户权限,(,3,)使用,GRANT,语句创建新用户。,GRANT,语句不仅可创建新用户,还可以在创建的同时对用户授权。,GRANT,语句还可以指定用户的其他特点,如安全连接、限制使用服务器资源等。使用,GRANT,语句创建新用户时必须有,GRANT,权限,。,其,基本语法格式如下。,GRANT priv_type ON database.table,TO user IDENTIFIED BY PASSWORD password,user IDENTIFIED BY PASSWORD password,WITH GRANT OPTION;,任务,9-2,管理数据库用户权限,【,例,9.3,】使用,GRANT,语句创建一个新用户,test1,,主机名为,localhost,,密码为,testuser,,并授予所有数据表的,SELECT,和,UPDATE,权限。,GRANT SELECT,UPDATE ON*.*TO test1localhost,IDENTIFIED BY testuser;,任务,9-2,管理数据库用户权限,(,4,)直接操作,mysql,用户表。,创建新用户,实际上就是在,user,表中添加一条新的记录。因此,可以使用,INSERT,语句直接将用户的信息添加到,mysql.user,表中。使用,INSERT,语句,必须拥有对,mysql.user,表的,INSERT,权限。其基本语法格式如下。,INSERT INTO mysql.user,(HOST,User,Password,ssl_cipher,x509_issuer,x509_subject),VALUES(hostname,username,PASSWORD(password),);,任务,9-2,管理数据库用户权限,【例,9.4,】使用,INSERT,语句创建一个新用户,student,,主机名为,localhost,,密码为,infomation,。,INSERT INTO mysql.user,(Host,User,Password,ssl_cipher,x509_issuer,x509_subject),VALUES(localhost,student,PASSWORD(infomation),);,此时,新添加的用户还没法使用账号密码登录,MySQL,,需要使用,FLUSH,命令使用户生效。命令如下。,FLUSH PRIVILEGES;,任务,9-2,管理数据库用户权限,2,删除用户,在,MySQL,数据库中,可以用,Navicat,图形工具删除用户,也可以使用,DROP USER,语句删除用户,或使用,DELETE,语句从,mysql.user,表中删除对应的记录来删除用户。,任务,9-2,管理数据库用户权限,2,删除用户,(,1,)使用,Navicat,图形工具删除用户,。,(,2,)使用,DROP USER,语句删除用户。,DROP USER,的语法格式如下。,DROP USER user_name,user_name,;,DROP USER,语句用于删除一个或多个,MySQL,账户,并取消其权限。要使用,DROP USER,,必须拥有,mysql,数据库的全局,CREATE USER,权限或,DELETE,权限。,任务,9-2,管理数据库用户权限,【例,9.5,】删除用户,TOM,。,DROP USER TOMlocalhost,;,任务,9-2,管理数据库用户权限,(,3,)使用,DELETE,语句删除用户,DELETE,语句的基本语法格式如下。,DELETE FROM mysql.user WHERE host=hostname and user=username;,host,和,user,为,user,表中的两个字段。,任务,9-2,管理数据库用户权限,【例,9.6,】使用,DELETE,删除用户,test1,。,DELETE FROM mysql.user WHERE host=localhostand user=test1;,任务,9-2,管理数据库用户权限,3,修改用户名称,(,1,)使用,Navicat,图形工具修改用户,。,(,2,)使用,RENAME USER,语句修改用户。基本语法格式如下。,RENAME USER old_user TO new_user,old_user TO new_user,;,任务,9-2,管理数据库用户权限,【例,9.7,】将用户,king1,和,king2,的名字分别修改为,ken1,和,ken2,。,RENAME USER,king1localhost TO ken1localhost,king2localhost TO ken2localhost;,任务,9-2,管理数据库用户权限,4,修改密码,要修改某个用户的登录密码,可以使用,mysqladmin,命令、,UPDATE,语句或,SET PASSWORD,语句来实现。,(,1,),root,用户修改自己的密码。,root,用户的安全对于保证,MySQL,的安全非常重要,因为,root,用户拥有全部权限。修改,root,用户密码的方式有多种。,使用,mysqladmin,命令。,mysqladmin,命令的基础语法格式如下。,mysqladmin u username h localhost p,任务,9-2,管理数据库用户权限,【例,9.8,】使用,mysqladmin,命令将,root,用户的密码修改为,rootpwd,,执行命令如下。,mysqladmin u root p password rootpwd;,Enter password:,修改完root用户的密码后,需要重新启动MySQL或执行FLUSH PRIVILEGES语句重新加载用户权限表,任务,9-2,管理数据库用户权限,(二)权限管理,权限管理主要是对登录到MySQL的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中。合理的权限管理能够保证数据库系统的安全,不合理的权限设置会给MySQL服务器带来安全隐患,。,任务,9-2,管理数据库用户权限,1MySQL的权限类型,MySQL数据库中有多种类型的权限,这些权限都存储在mysql数据库的权限表中。在MySQL启动时,服务器将这些数据库中的权限信息读入内存。,任务,9-2,管理数据库用户权限,2授权,(1)权限的级别。授予的权限可以分为多层级别。,全局层级。,数据库层级,。,表层级,。,列层级,。,子程序层级,。,任务,9-2,管理数据库用户权限,2授权,(2)授权语句GRANT。在MySQL中,必须是拥有GRANT权限的用户才可以执行GRANT语句。,GRANT语句的基本语法格式如下。,GRANT priv_type(column_list),priv_type(column_list),n,ON table_name|*|*.*|database_name.*|database_name.table_name,TO userIDENTIFIED BY PASSWORD password,userIDENTIFIED BY PASSWORD password,n,WITH GRANT OPTION;,任务,9-2,管理数据库用户权限,2授权,【例,9,.11】使用GRANT语句创建一个新用户grantUser,密码为“grantpwd”。用户grantUser对所有的数据有查询、插入权限,并授予GRANT权限。,GRANT SELECT,INSERT on*.*TO grantUserlocalhost IDENTIFIED BY grantpwd WITH GRANT OPTION;,任务,9-2,管理数据库用户权限,2授权,【例,9,.12】使用GRANT语句将gradem数据库中student表的DELETE权限授予用户grantUser。,GRANT DELETE on gradem.student TO grantUserlocalhost;,【例,9,.13】使用GRANT语句将gradem数据库中sc表的degree列和cterm列的UPDATE权限授予用户test1。,GRANT,UPDATE,(degree,cterm)on gradem.sc to test1localhost;,任务,9-2,管理数据库用户权限,3收回权限,收回权限就是取消已经赋予用户的某些权限。收回用户不必要的权限在一定程度上可以保证数据的安全性。权限收回后,用户账户的记录将从db、host、tables_priv和columns_priv表中删除,但是用户账户记录仍然在user表中保存。收回权限利用REVOKE语句来实现,语法格式有两种,一种是收回用户的所有权限,另一种是收回用户指定的权限,。,任务,9-2,管理数据库用户权限,3收回权限,(1)收回所有权限。,其基本语法如下。,REVOKE ALL PRIVILEGES,GRANT OPTION,FROM usernamehostname,usernamehostname,n;,REVOKE ALL PRIVILEGES,GRANT OPTION FROM grantUserlocalhost;,【例,9,.14】使用REVOKE语句收回grantUser用户的的所有权限,包括GRANT权限。,任务,9-2,管理数据库用户权限,3收回权限,(2)收回指定权限。,其基本语法如下。,REVOKE priv_type(column_list),priv_type(column_list),n,ON table_name|*|*.*|database_name.*|database_name.table_name,FROM usernamehostname,usernamehostname,n;,任务,9-2,管理数据库用户权限,3收回权限,(2)收回指定权限。,REVOKE UPDATE(cterm)on gradem.sc FROM test1localhost;,【例,9,.15】收回test1用户对gradem数据库中student表的cterm列的UPDATE权限。,任务,9-2,管理数据库用户权限,4,查看权限,SHOW GRANTS语句可以显示指定用户的权限信息,使用SHOW GRANTS查看账户权限信息的基本语法格式如下。,SHOW GRANTS FOR usernamehostname;,【例,9,.1,6,】,使用SHOW GRANTS语句查看test1用户的权限信息。,任务9-3 备份与恢复,数据库,【任务分析】,确保数据库的安全性和完整性的关键措施是进行数据备份和数据恢复。首先了解数据损失的原因,然后要掌握数据备份和数据恢复的方法与手段,理解数据库迁移、数据的导入与导出的方法。工欲善其事,必先利其器。,【,课堂,任务】,本次任务要掌握MySQL的数据备份与恢复。,了解什么是数据备份,掌握MySQL的数据备份方法,掌握MySQL的数据恢复方法,掌握MySQL的数据库迁移方法,掌握MySQL表的导入与导出方法,任务,9-3,备份与恢复,数据库,(一)数据备份与恢复,数据备份就是制作数据库结构、对象和数据的复制,以便在数据库遭到破坏时,或因需求改变而需要把数据还原到改变以前时能够恢复数据库。数据恢复就是指将数据库备份加载到系统中。数据备份和恢复可以用于保护数据库的关键数据。在系统发生错误或者因需求改变时,利用备份的数据可以恢复数据库中的数据。,任务,9-3,备份与恢复,数据库,(一)数据备份与恢复,1,数据损失的因素,(1)存储介质故障。,(2)系统故障。,(3)用户的错误操作。,(4)服务器的彻底崩溃。,(5)自然灾害。,(6)计算机病毒。,任务,9-3,备份与恢复,数据库,2数据备份的分类,(1)按备份时服务器是否在线划分。,热备份。热备份是指数据库在线时服务正常运行的情况下进行数据备份。,温备份。温备份是指进行数据备份时数据库服务正常运行,但数据只能读不能写。,冷备份。冷备份是指数据库已经正常关闭的情况下进行的数据备份。当正常关闭时会提供一个完整的数据库。,任务,9-3,备份与恢复,数据库,2数据备份的分类,(2)按备份的内容划分。,逻辑备份。逻辑备份是指使用软件技术从数据库中导出数据并写入一个输出文件,该文件格式一般与原数据库的文件格式不同,只是原数据库中数据内容的一个映像。逻辑备份支持跨平台,备份的是SQL语句(DDL和insert语句),以文本形式存储。在恢复的时候执行备份的SQL语句实现数据库数据的重现。,物理备份。物理备份是指直接复制数据库文件进行的备份,与逻辑备份相比,其速度较快,但占用空间比较大。,任务,9-3,备份与恢复,数据库,2数据备份的分类,(3)按备份涉及的数据范围来划分。,完整备份。完整备份是指备份整个数据库。这是任何备份策略中都要求完成的第1种备份类型,因为其他所有备份类型都依赖于完整备份。换句话说,如果没有执行完整备份,就无法执行差异备份和增量备份。,增量备份。数据库从上一次完全备份或者最近一次的增量备份以来改变的内容的备份。,差异备份。差异备份是指将从最近一次完整数据库备份以后发生改变的数据进行备份。差异备份仅捕获自该次完整备份后发生更改的数据。,备份是一种十分耗费时间和资源的操作,不能频繁操作。应该根据数据库使用情况确定一个适当的备份周期。,任务,9-3,备份与恢复,数据库,3数据恢复的手段,数据恢复就是当数据库出现故障时,将备份的数据库加载到系统,从而使数据库恢复到备份时的正确状态。MySQL有3种保证数据安全的方法。,(1),数据库备份,:通过导出数据或者表文件的拷贝来保护数据(2),二进制日志文件,:保存更新数据的所有语句。,(3),数据库复制,:MySQL内部复制功能。建立在两个或两个以上服务器之间,通过设定它们之间的主从关系来实现的。其中一个作为主服务器,其他的作为从服务器。在此主要介绍前两种方法。,恢复是与备份相对应的系统维护和管理操作。系统进行恢复操作时,先执行一些系统安全性的检查,包括检查所要恢复的数据库是否存在、数据库是否变化及数据库文件是否兼容等,然后根据所采用的数据库备份类型采取相应的恢复措施。,任务,9-3,备份与恢复,数据库,数据备份是数据库管理员的工作。系统意外崩溃或者硬件的损坏都可能导致数据库的丢失,因此MySQL管理员应该定期对数据库进行备份,使得在意外情况发生时,尽可能减少损失。,(二)数据备份的方法,任务,9-3,备份与恢复,数据库,1使用Navicat图形工具备份,2使用mysqldump命令备份,mysqldump是MySQL提供的一个非常有用的数据库备份工具。该实用程序存储在C:Program FilesMySQLMySQLServer 5.5bin文件夹中。Mysqldump命令执行时,可以将数据库备份成一个文本文件,该文件中实际上是包含了多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据。,(1)备份数据库或表。mysqldump备份数据库或表的基本语法格式如下。,mysqldump u user h host ppassword dbnametbname,tbnamefilename.sql;,(二)数据备份的方法,任务,9-3,备份与恢复,数据库,【例,9,.17】使用mysqldump命令备份数据库gradem中的所有表,执行过程如下。,m,ysqldump u root h localhost p grademd:bakgradembak.sql,Enter password:*,输入密码后,MySQL便对数据库进行了备份,在D:bak文件夹下查看备份的文件,使用文本查看器打开文件可以看到其文件内容。,任务,9-3,备份与恢复,数据库,【例,9,.17】使用mysqldump命令备份数据库gradem中的所有表,执行过程如下。,m,ysqldump u root h localhost p grademd:bakgradembak.sql,Enter password:*,输入密码后,MySQL便对数据库进行了备份,在D:bak文件夹下查看备份的文件,使用文本查看器打开文件可以看到其文件内容。,任务,9-3,备份与恢复,数据库,【例,9,.18】使用mysqldump命令备份数据库gradem中的student表和sc表,执行过程如下。,m,ysqldump u root h localhost p gradem student,scd:bakgrademtb.sql,Enter password:*,任务,9-3,备份与恢复,数据库,(2)备份多个数据库。,使用mysqldump备份多个数据库,需要使用-databases参数,其基本语法格式如下。,mysqldump u user h host p-databases dbname dbnamefilename.sql;,使用-databases参数之后,必须指定至少一个数据库的名称,多个数据库之间用空格隔开,。,【例,9,.19】使用mysqldump命令备份数据库gradem和mydb,执行过程如下。,mysqldump u root h localhost p-databases gradem mydbd:bakgrademdb.sql,Enter password:*,任务,9-3,备份与恢复,数据库,(3)mysqldump命令中各参数的含义。,运行帮助命令mysqldump help,可以获得特定版本的完整参数列表。,任务,9-3,备份与恢复,数据库,3直接复制整个数据库文件夹,因为MySQL表保存为文件方式,所以可以直接复制MySQL数据库的存储目录及文件进行备份。这种方法最简单,速度也最快。使用该方法时,最好先将服务器停止,这样可以保证在复制期间数据不会发生变化。,这种方法虽然简单快速,但不是最好的备份方法。因为在实际情况下,可能不允许停止MySQL服务器。而且此方法对InnoDB存储引擎的表不适用。对于MyISAM存储引擎的表,利用此方法备份和还原很方便。使用此方法备份的数据最好还原到相同版本的服务器上,否则会出现不兼容的情况。,任务,9-3,备份与恢复,数据库,恢复数据库,就是让数据库根据备份的数据回到备份时的状态。当数据丢失或意外破坏时,可以通过数据恢复已经备份的数据,尽量减少数据丢失和破坏造成的损失。,1使用Navicat图形工具恢复数据,2使用mysql命令恢复数据,对于使用mysqldump命令备份后形成的.sql文件,,,可以使用mysql命令导入到数据库中。备份的.sql,文,件中包含CREATE、INSERT语句,也可能包,含,DRO,P,语句。,MySQL命令可以直接执行文件中的这些语句。其语法格式如下。,mysql u user p dbnamefilename.sql;,(三)数据恢复的方法,任务,9-3,备份与恢复,数据库,【例,9,.20】使用mysql命令将备份文件gradembak.sql恢复到数据库中,执行过程如下。,mysql u root p gradem SOURCE d:bakgradembak.sql,任务,9-3,备份与恢复,数据库,数据库迁移就是把数据从一个系统移动到另一个系统上。以下情况需要进行数据库迁移。,需要安装新的数据库服务器。,MySQL版本更新。,数据库管理系统的变更(如从Microsoft SQL Server迁移到MySQL)。,(四)数据库迁移,任务,9-3,备份与恢复,数据库,(四)数据库迁移,1相同版本的MySQL数据库之间的迁移,2不同版本的MySQL数据库之间的迁移,3不同数据库之间的迁移,数据库迁移可以使用一些工具,例如在Windows系统下,可以使用MyODBC实现MySQL和SQL Server之间的迁移。MySQL官方提供的工具MySQL Migration Toolkit也可以在不同数据库之间进行数据迁移。,任务,9-3,备份与恢复,数据库,(五)表的导入和导出,有时会需要将MySQL数据库中的数据导出到外部存储文件中,MySQL数据库中的数据可以导出为sql文本文件、xml文件、txt文件、xls文件或html文件。同样,这些导出文件也可以导入到MySQL数据库中。,1利用Navicat图形工具导出和导入文件,2利用SELECT语句和LOAD语句导出和导入文件,任务,9-3,备份与恢复,数据库,(五)表的导入和导出,1相同版本的MySQL数据库之间的迁移,2不同版本的MySQL数据库之间的迁移,3不同数据库之间的迁移,数据库迁移可以使用一些工具,例如在Windows系统下,可以使用MyODBC实现MySQL和SQL Server之间的迁移。MySQL官方提供的工具MySQL Migration Toolkit也可以在不同数据库之间进行数据迁移。,任务,9-3,备份与恢复,数据库,(1)使用SELECT INTO OUTFILE导出文本文件。,SELECT FROM WHERE INTO OUTFILE 文件路径文件名 OPTIONS;,【例,9.22,】使用,SELECTINTO OUTFILE,命令将,gradem,数据库中的,student,表中的记录导出到文本文件,执行命令如下。,SELECT*FROM student INTO OUTFILE D:/BAK/person.txt;,由于指定了,INTO OUTFILE,子句,,SELECT,将,student,表中的字段值保存到,D:BAK person.txt,文件中。,任务,9-3,备份与恢复,数据库,【例,9,.23】使用SELECTINTO OUTFILE命令将gradem数据库中的sc表中的记录导出到文本文件,使用FIELDS选项和LINES选项,要求字段之间使用逗号“,”间隔,所有字段值用双引号括起来,定义转义字符为单引号“”,执行命令如下。,SELECT*FROM course INTO OUTFILE D:/BAK/course.txt,FIELDS,TERMINATED BY,ENCLOSED BY,ESCAPED BY,LINES,TERMINATED BY rn;,任务,9-3,备份与恢复,数据库,(2)使用LOAD DATA INFILE语句导入文件。,LOAD DATA INFILE filename.txt INTO TABLE tablename OPTIONSIGNORE number LINES;,【例,9,.24】使用LOAD DATA INFILE命令将d:bakcourse.txt文件中的数据导入到gradem数据库中的course表中,执行命令如下。,delete from course;,LOAD DATA INFILE d:/bak/course.txt INTO TABLE course;,任务,9-3,备份与恢复,数据库,【例,9,.25】使用LOAD DATA INFILE命令将d:baksc.txt文件中的数据导入到gradem数据库中的sc表中,使用FIELDS选项和LINES选项,要求字段之间使用逗号“,”间隔,所有字段值用双引号括起来,定义转义字符为单引号“”,执行命令如下。,delete from sc;,LOAD DATA INFILE d:/bak/sc.txt INTO TABLE gradem.sc,FIELDS,TERMINATED BY,ENCLOSED BY,ESCAPED BY,LINES,TERMINATED BY rn;,任务,9-3,备份与恢复,数据库,3利用mysqldump命令和mysqlimport命令导出和导入文件,(1)使用mysqldump命令导出文本文件。,mysqldump u root p T path dbnametables OPTIONS,任务,9-3,备份与恢复,数据库,【例,9,.26】使用mysqldump命令将gradem数据库中的teacher表中的记录导出到文本文件,执行命令如下。,mysqldump-u root-p-T D:/bak gradem teacher,Enter password:*,语句执行成功后,会在D盘的bak文件夹中生成两个文件,分别为teacher.sql和teacher.txt。teacher.sql文件中包含创建teacher表的CREATE语句,teacher.txt文件中包含表中的数据。,任务,9-3,备份与恢复,数据库,【例,9,.27】使用mysqldump命令将gradem数据库中的sc表中的记录导出到文本文件,要求字段之间使用逗号“,”间隔,所有字符类型的字段值用双引号括起来,定义转义字符为问号“?”,每行记录以回车换行符“rn”结尾,执行命令如下。,mysqldump u root p T d:/bak gradem sc,-fields-terminated-by=,-fields-optionally-enclosed-by=,-fields-escaped-by=?-lines-terminated-by=rn,任务,9-3,备份与恢复,数据库,(2)使用mysqlimport命令导入文本文件。,mysqlimport-u root-p dbname filename.txt OPTIONS,任务,9-3,备份与恢复,数据库,【例,9,.28】使用mysqlimport命令将d:baksc.txt文件中的数据导入到gradem数据库中的sc表中,字段之间使用逗号“,”间隔,所有字符型字段值用双引号括起来,定义转义字符为单引号“?”,执行命令如下。,mysqlimport-u root-p gradem d:/bak/sc.txt,-fields-terminated-by=,-fields-optionally-enclosed-by=,-fields-escaped-by=?-lines-terminated-by=rn,任务,9-3,备份与恢复,数据库,4使用mysql命令导出文本文件,mysql u root p OPTIONS-e|-execute=SELECT语句 dbna,【例,9,.29】使用mysql命令将gradem数据库中的teacher表中的记录导出到文本文件,执行命令如下,mysql-u root-p-execute=SELECT*FROM teacher;grademd:/bak/teatxt.txt,Enter password:*,或,mysql-u root-p-e SELECT*FROM teacher;grademd:/bak/teatxt.txt,Enter password:*,任务,9-3,备份与恢复,数据库,【例9.30】使用mysql命令将gradem数据库中的sc表中的记录导出到html文件,执行命令如下。,mysql-u root-p-html-e SELECT*FROM sc;grademd:/bak/sc.html,Enter password:*,或,mysql-u root-p-H-execute=SELECT*FROM sc;grademd:/bak/sc.html,Enter password:*,任务,9-4,使用,MySQL,日志,【任务分析】,对于MySQL的管理工作而言,日志文件不可缺少。因此,,,首先要了解日志的作用,并且掌握各种日志的使用方法和使用二进制日志还原数据的方法。,【,课堂,任务】,本节要掌握MySQL日志的用法。,了解什么是MySQL日志,掌握二进制日志的用法,掌握错误日志的用法,掌
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服