Windows备份表/还原表
注意:一定要是在管理员身份下运行命令窗口,在命令窗口操作备份,并且不要登录数据库
命令:
mysqldump -u 用户名 -p 密码 dbname table1,table2,... >filename.sql # 备份部分表
mysql -u 用户名 -p 密码 dbname <filename.sql # 还原表
备注:
# dbname 要备份的数据库的名字
# table1,table2 : 需要备份的表的名字,语法中不跟表名,就备份的是整个数据库
# filename.sql : 表示将数据库备份为一个 后缀名.sql的文件,文件名之前可以添加绝对路径。
例如:
1)Windows下备份表:
C:\Windows\system32>mysqldump -u root -p Dsfz123456@ company user_tab >D:\beif0722.sql
Enter PASSWORD: ***********
此时会报错:
mysqldump: Got error: 1049: UNKNOWN DATABASE 'dsfz123456@' WHEN selecting the database
报错原因:
把密码当做数据库名称了,实际操作的时候,命令中不要写密码,安全起见,按照提示输入密码即可,密码不回写
正确如下:
C:\Windows\system32>mysqldump -u root -p company emp >D:\0722_1beif.sql
Enter PASSWORD: ***********
- Windows下还原表:
C:\Windows\system32>mysql -u root -p company <D:\0722_1beif.sql
Enter PASSWORD: ***********
Windows备份库/还原库
注意:复原数据库的时候,先创建一个数据库,是不是同名的都没有关系,必须是存在的空 数据库
命令:
mysqldump -u 用户名 -p 密码 dbname >filename.sql # 备份的是整个数据库
1)Windows下备份库:
C:\Windows\system32>mysqldump -u root -p company >D:/kubeif.sql
Enter PASSWORD: ***********
2)Windows下还原库:
C:\Windows\system32>mysql -u root -p company <D:/kubeif.sql
Enter PASSWORD: ***********
此时会报错:ERROR 1049 (42000): UNKNOWN DATABASE 'company'
报错原因:没有先创建一个数据库,是不是同名的都没有关系,必须是存在的空数据库
正确如下:
CREATE DATABASE test22; --先创建空的数据库
C:\Windows\system32>mysql -u root -p test22 <D:/kubeif.sql --还原库
Enter PASSWORD: ***********
Linux下备份与还原
linux 下 mysql 备份命令和还原命令和Windows下是一样的
不过要注意:
系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,会找不到命令,就会报错
解决办法:
1、首先得知道mysqldump命令的完整路径,可以使用find命令查找
[root@localhosttest ~]# find / -name mysqldump
usr/LOCAL/mysql/bin/mysqldump
2、创建软链接,到 /usr/bin 下,那么只要登录linux,就可以直接使用 mysqldump命令
[root@localhosttest ~]# ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
3、
[root@localhosttest ~]# mysqldump -u root -p company > testbeif.sql --此时可正常进行备份
Enter PASSWORD: **********
CREATE DATABASE test22;
[root@localhosttest ~]# mysql -u root -p test22 < /root/testbeif.sql --正常进行还原
Enter PASSWORD: **********