mysql学习笔记之十六(数据库维护)
来源:互联网 发布:装修监理必知 编辑:程序博客网 时间:2024/05/01 16:59
数据备份 数据损失原因:存储介质鼓掌,用户操作错误(误删除整个数据库),服务器彻底瘫痪 1、文件复制 需要先停止服务器服务,在停止之前,执行flushtables将所有数据写入到数据文件,停止之后,将数据文件拷贝到其他地方 只适合MyISAM存储引擎,对其他引擎并不合适 2、mysqldump mysqldump将包含数据的表结构和数据内容保存在相应的文本文件。具体执行时,首先检查备份数据的表结构,在相应的文本文件中生成create语句。然后检查数据内容,在相应的文本文件中生成insert into 语句。将来需要进行还原时,只需要执行文本文件中的create和insert into 三种形式: 备份一个数据库 mysqldump -u username -p dname table1,table2,... >backupname.sql 不指定table则会备份整个数据库 ">"两边要有空格。 例: C:\Users\208-1>mysqldump -u root -p123456 leetcode t_scores t_employee > D:\AppServ\MySQL\backupleetcode.sql C:\Users\208-1>mysqldump -u root -p123456 leetcode > D:\AppServ\MySQL\backupleetcode1.sql mysqldump不能再mysql>后面输入,直接在dos窗口执行 备份多个数据库 mysqldump -u username -p --databases dbname1 dbname2 ... > backupname.sql 各个数据库之间不能加逗号直接用空格隔开就行 备份所有数据库 mysqldump -u username -p --all-databases > backupname.sql all-databases是连在一起的。数据还原 1、复制备份文件还原数据库 这种方式必须保证两个mysql数据库的主版本号一致,因为只有主版本号相同时,才能保证两个mysql数据库的文件类型是相同的 仅对MyISAM类型的表有效 主版本号,MySQL 5.5.21和MySQL 5.5.01主版本号是相同的,第一个数字是主版本号 2、mysql mysql -u username -p [dbname]<backup.sql 指定dbname,则还原该数据库下的表,不指定,则还原备份文件中所有的数据库导出 通过数据库中表的导入和导出操作,可以在mysql数据库服务器与其他数据库服务器间(sql server 、Oracle)轻松移动数据 导出: 将数据从mysql数据表里复制到文本文件 导入 将数据从文本文件加载到mysql数据库表里 1、select...into outfile select [filename] from table_name [where condition] into outfile 'filename' [option] 两部分:普通查询语句(查询要导出的数据)和导出位置 option的取值: fileds terminated by "string" 用来设置字段的分隔符字符串对象(string),默认为制表符 fields enclosed by "char" 用来设置括上字段值的字符符号,默认不使用任何符号 fields optionally enclosed by 'char' 用来括上char,varchar和text等字段的字符符号,默认不使用任何符号 fieles escaped by 'char' 设置转义字符的字符符号,默认情况下使用"\"字符 lines starting by 'char' 设置每行开头的字符符号,默认不使用任何符号 lines terminated by 'string' 设置每行结束的字符串符号,默认使用'\n' 2、mysqldump mysqldump -u root -p -T file_directory dbname tablename[option] option的取值: --fileds-terminated-by=string --fileds-enclosed-by=char --fileds-optionally-enclosed-by=char --lines-terminated-by=string导入 1、load data infile load data[local] infile filename into table table_name[option] local:指定在本地计算机中查找文本文件; filename:用来指定文本文件的路径和名称; tablename:用来指定表的名称 oprion的取值 fileds terminated by "string" 用来设置字段的分隔符字符串对象(string),默认为制表符 fields enclosed by "char" 用来设置括上字段值的字符符号,默认不使用任何符号 fields optionally enclosed by 'char' 用来括上char,varchar和text等字段的字符符号,默认不使用任何符号 fieles escaped by 'char' 设置转义字符的字符符号,默认情况下使用"\"字符 lines starting by 'char' 设置每行开头的字符符号,默认不使用任何符号 lines terminated by 'string' 设置每行结束的字符串符号,默认使用'\n' ignore n lines 实现忽略文件的前n行记录 (字段列表) 实现根据字段列表中的字段和顺序来加载记录 set column=expr 用来设置列的转换条件,即所指定的列经过相应的转换后会被加载 2、mysqlimport mysqlimport -u root -p [--local] dbname file_name[oiption] option的取值: --fileds-terminated-by=string --fileds-enclosed-by=char --fileds-optionally-enclosed-by=char --lines-terminated-by=string --ignrs-lines=n 注意:命令里没有指定导入到哪个表里。按照书上的意思,按照文件名寻找表,然后导入进去。数据库迁移 1、相同版本间的mysql数据库之间的迁移 mysqldump -h hostname -u root -password=password1 --all-databases |mysql -h hostname2 -u root -password=password2 备份和还原同时操作。 对于相同版本间的mysql数据库之间的迁移,先使用mysqldump进行备份,然后使用mysql命令将备份文件还原到新的mysql数据库。 2、不同版本间的mysql数据库之间的迁移 低版本->高版本最是容易实现,因为高版本兼容低版本 对于MyISAM的表 使用文件直接复制的方式或者mysqlhotcopy 对于InnoDB的表 使用mysqldump备份,使用mysql命令还原 3、不同数据库间的迁移 mysql->sql server :通过MyODBC实现迁移 mysql->oracle:先通过mysqldump命令导出sql文件,手动修改 sql中的create语句
0 0
- mysql学习笔记之十六(数据库维护)
- MYSQL学习笔记(二十五)数据库维护
- mysql学习笔记之管理维护(三)
- 《深入浅出MySQL:数据库开发、优化与管理维护(2nd)》第31章之MySQL异步复制搭建学习笔记
- mysql学习笔记(二) ----维护
- mysql学习笔记之管理和维护篇(一)
- mysql学习笔记之管理和维护篇(二)
- 学习笔记(十六)
- 数据库学习纪要(二十六):MySQL-6-子查询
- MySQL必知必会笔记(八)安全管理 数据库维护 改善性能
- MySQL必知必会笔记(七)安全管理 数据库维护 改善性能
- MySQL必知必会笔记(八)安全管理 数据库维护 改善性能
- MySQL必知必会笔记(七)安全管理 数据库维护 改善性能
- MYSQL学习笔记(十六)更新和删除数据
- MySQL学习笔记十六:锁机制
- MySQL学习笔记十六:锁机制
- Mysql学习笔记十六——视图
- MySQL学习笔记之十六 使用MySQL内建复制功能
- 面试题44:扑克牌的顺子
- Ruby 中一些百分號(%)的用法小結
- rails上傳圖片代碼實例
- VBA第6课 循环判断数据
- APM半实物仿真
- mysql学习笔记之十六(数据库维护)
- Ruby 中$開頭的全局變數、內部變數、隱藏變數介紹
- 数组-13. 螺旋方阵(20)
- 变态跳台阶
- 在TCP/IP网络中,为各种公共服务保留的端口号范围
- Ruby self在不同環境的含義
- ruby 雜項
- Ruby中使用Block、Proc、lambda實現閉包
- Android Studio 1.2正式版发布,要如何更新? Please check network connection and try again.