最近在学习mysql,在做相关练习中遇到了一些问题,以下是本人对所遇到的问题提出的解决办法,晒出来希望能对大家有所帮助,有不足之处望各位老铁给予斧正~
数据的备份和还原可以借助mysqldump语句和mysqlbinlog语句,以下主要对这两种方法进行哔哔~
我的开发环境:mysql5.7.17
mysqldump:
mysqldump是mysql用于转存储数据库的实用语句块,可在指定位置生成.sql文件,sql文件里面存放了数据库中各Table的创建语句和插值语句等等,当然有些.sql文件里的语句并不是那么直观,比如通过mysqlbinlog生成的.sql文件,后面会进行讲解~
mysqldump 备份指定数据库:
mysqldump -u root -pdatabase_name > E:/filename.sql
database_name 是你想备份的数据库名称,filename是你保存的.sql文件的文件名(尽量不使用中文,此时选择的是E盘的根目录)
例如:将数据库testdb备份到 E:/backup.sql
咦?为什么报错?
原因是 mysqldump 语句是这样用滴:
exit 出 mysql 在cmd下直接键入mysqldump -u root -p testdb > E:/backup.sql语句,切记,此时末尾不加分号!回车后输入 root 密码(也就是进入mysql的密码),若不提示错误,便说明备份完成!
下面我们来看看备份的sql文件内容是什么样子的:我是用Notepad打开的,sql文件也可以用记事本打开的~
当我们再调用该sql文件时,mysql便可借助其中的数据库信息将数据库还原进mysql,用法如下:
mysql -u root -p database_name < E:/filename.sql
同样注意的是该语句在cmd下键入,而非mysql服务中!还有一点是此时的database_name是mysql中已存在的数据库,即该语句不能生成新的数据库!不妨试上一试,我先drop掉数据库testdb:
不负众望,它报错了~哈哈! 错误是testdb数据库未知,因为之前我们已近drop掉它了!
下面我将目标数据库改为mysql(mysql服务自带的数据库),嘿嘿,顺利通过~
之后可以在数据库mysql中输入:show tables;便会发现名为chinesetest的表~select * from chinesetest;便会发现表里的信息和之前testdb中的一木一样!神奇的mysql~