备份:用SQL命令将数据库或者表备份成一个文本文件
Mysqldump 命令
Mysqldump -u 用户名 –p 密码 ****** dbname table1,table2,table3,… > filename.sql
Mysqldump -u 用户名 –p 密码 ****** 数据库名 > 备份名 ---备份整个数据库
备注:Dbname数据库的名称
Table1,table2,table3,…表示需要备份的表名,语法中不跟表名则备份整个数据库
Filename.sql表示将数据库备份成一个带有.sql后缀的文件,文件名之前可以加一个绝对路径。
**注意:一定要在管理员身份下运行命令窗口,在命令窗口操作备份,不要登录数据库
例如: 用 root 用户备份 company 数据库下s1表;
C:\Windows\system32>mysqldump -u root -p xxxxxx company s1 > D:\beif.sql
Enter PASSWORD: ***********
mysqldump: Got error: 1049: UNKNOWN DATABASE 'xxxxxx' WHEN selecting the database
# 把密码当做数据库,实际操作的时候,密码不要写,为了安全起见,根据提示输入,密码不回显
C:\Windows\system32>mysqldump –u root -p company s1 > D:\beif.sql
Enter PASSWORD: ***********
C:\Windows\system32>
SELECT * FROM s1;
DROP TABLE s1;
还原:将备份好的数据库文件还原
mysql -u 用户名 -p 密码 dbname < 需要复原的文件名称(包含路径)
# 实际操作中,密码不要写,根据提示输入
C:\Windows\system32>mysql -u root -p company < D:\beif.sql
Enter PASSWORD: ***********
C:\Windows\system32> # 还原完成
验证:
SELECT * FROM s1;
# 针对整个数据库进行备份和还原情况一样,但是还原数据库的时候需要注意
例如:备份整个company数据库
C:\Windows\system32>mysqldump -u root -p company > D:\BEF0329.sql
Enter PASSWORD: ***********
C:\Windows\system32>
DROP DATABASE company;
C:\Windows\system32>mysql -u root -p company < D:\BEF0329.sql
Enter PASSWORD: ***********
ERROR 1049 (42000): UNKNOWN DATABASE 'company'
C:\Windows\system32>
# 复原数据库时,先创建一个数据库,是不是同名没有关系,没有影响,必须是存在的空数据库
CREATE DATABASE company22;
C:\Windows\system32>mysql -u root -p company22 < D:\BEF0329.sql
Enter PASSWORD: ***********
C:\Windows\system32>
验证:
SELECT * FROM s1;