返回列表 发帖

Windows下MySQL的备份和还原

笺注:这是在 Windows2012R2_安装MySQL5.5 的基础上进行的。


Windows客户端使用SQLyog,远程备份MySQL数据库:

运行 SQLyogEnt.exe ,新建一个连接:
图片1.png
注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 1234
端口 3306

笺注:
Windows客户端的IP地址为 192.168.168.132
使用数据库用户zhuohua@'192.168.168.132',只对库data1有完全控制的权限。


SQLyog的主界面:
图片2.png


库data1里的表:
图片3.png



使用SQLyog查看库data1的表t_1、t_2的表数据:
Use data1;
SELECT * FROM t_1;
SELECT * FROM t_2;
图片4.png

图片5.png



######
使用SQLyog备份库data1:
图片6.png

图片7.png
注释:备份文件(C:\Users\jacky\Desktop\data1_backup.sql)会保存在客户端本地。

成功备份库data1:
图片8.png



######
备份成功后,使用SQLyog删除库data1里的表t_1:
Use data1;
DROP TABLE t_1;
图片9.png

成功删除库data1里的表t_1:
图片10.png



######
备份成功后,继续往库data1的表t_2中添加一条记录:
Use data1;
INSERT INTO t_2 (name,phone,english) VALUES ('zhuohua','168168',90);

SELECT * FROM t_2;
图片11.png



######
备份成功后,继续在库data1中创建表t_3:
Use data1;
create table t_3(
   id int not null auto_increment,
   name varchar(20) not null,
   phone varchar(30),
   english float,
   primary key (id)
);


再往库data1的表t_3中添加一条记录:
Use data1;
INSERT INTO t_3 (name,phone,english) VALUES ('Python','777666',99);

SELECT * FROM t_3;
图片12.png


此时,库data1里的表:
图片13.png





######
使用SQLyog还原库data1:
图片14.png

图片15.png
注释:使用客户端本地的备份文件(C:\Users\jacky\Desktop\data1_backup.sql)。

成功还原库data1:
图片16.png


还原成功后,库data1里的表:
图片17.png



######
还原成功后,使用SQLyog查看库data1的表t_1、t_2的表数据:
Use data1;
SELECT * FROM t_1;
SELECT * FROM t_2;
图片18.png

图片19.png



######
备份成功后,使用SQLyog查看库data1的表t_3的表数据:
Use data1;
SELECT * FROM t_3;
图片20.png

结论:
还原某个库时,假如库里的某个表不存在,会还原备份文件里的表;
假如表名重复,会被备份文件里的表直接替换;假如表名不重复,则不处理。













##################
##################

Linux客户端远程备份MySQL数据库:

先登录远程MySQL:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133"
图片21.png

注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 886
端口 3306

笺注:
Linux客户端需要安装MySQL或MariaDB
Linux客户端的IP地址为 192.168.168.154
使用数据库用户zhuohua@'192.168.168.154',只对库data1有完全控制的权限。



备份一个库(data1):
[root@centos8 ~]# mysqldump -u"zhuohua" -p"886" -h"192.168.168.133" data1 > /data1_backup.sql
[root@centos8 ~]#

备份成功:
[root@centos8 ~]# du -sh /data1_backup.sql
12K     /data1_backup.sql
[root@centos8 ~]#

注释:备份文件/data1_backup.sql会保存在客户端本地。



######

删除一个库(data1):(还原前,最好删除旧库)
MySQL [(none)]> drop database data1;
Query OK, 8 rows affected (0.184 sec)

MySQL [(none)]>


重新创建库(data1),并指定其字符集:
MySQL [(none)]> create database data1 character set utf8mb4 collate utf8mb4_unicode_ci;
Query OK, 1 row affected (0.001 sec)

MySQL [(none)]>


切换到库data1:
MySQL [(none)]> use data1;
Database changed
MySQL [data1]>


以防中文出现乱码,最好先设置一下编码规则:
MySQL [data1]> set names utf8;
Query OK, 0 rows affected (0.000 sec)

MySQL [data1]>


还原单个库(data1):(使用客户端本地的备份文件/data1_backup.sql
MySQL [data1]> source /data1_backup.sql
Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.001 sec)

MySQL [data1]>



实验中,库data1的还原是成功的:
MySQL [data1]> show create database data1;
+----------+----------------------------------------------------------------------------------------------+
| Database | Create Database                                                                              |
+----------+----------------------------------------------------------------------------------------------+
| data1    | CREATE DATABASE `data1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ |
+----------+----------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)

MySQL [data1]>

MySQL [data1]> show tables;
+-----------------+
| Tables_in_data1 |
+-----------------+
| new_t_1         |
| new_t_2         |
| t_1             |
| t_2             |
| t_3             |
| table1          |
| table2          |
| table3          |
+-----------------+
8 rows in set (0.002 sec)

MySQL [data1]>

MySQL [data1]> select * from table1;
+----+--------+--------+---------+
| id | number | name   | address |
+----+--------+--------+---------+
|  1 | A001   | 小明   | 佛山    |
|  2 | A002   | 小李   | 广州    |
|  3 | A003   | 小海   | 肇庆    |
+----+--------+--------+---------+
3 rows in set (0.001 sec)

MySQL [data1]>













##################
##################

在服务器本地备份MySQL数据库:

使用CMD命令行程序:
图片22.png


MySQL的命令都在安装目录下的bin里面:(Windows下需要先切换工作目录)
d:
cd MySQL\bin



备份一个库(data1):
mysqldump -u"root" -p"123" -h"localhost" data1 > d:\data1_bak.sql
图片23.png
注释:
使用数据库管理员root@localhost
在服务器本地登录时, -h"localhost" 是可以省略的。


备份成功:(只有d:\data1_bak.sql一个备份文件)
图片24.png





######

在服务器本地还原MySQL数据库:

服务器本地登录MySQL:(Windows下需要先切换工作目录)
d:
cd MySQL\bin
mysql -u"root" -p"123"

图片25.png


删除一个库(data1):(还原前,最好删除旧库)
mysql> drop database data1;
Query OK, 8 rows affected (0.02 sec)

mysql>


重新创建库(data1),并指定其字符集:
D:\MySQL\bin>create database data1 character set utf8mb4 collate utf8mb4_unicode_ci;
Query OK, 1 row affected (0.00 sec)

mysql>


切换到库data1:
mysql> use data1;
Database changed
mysql>


以防中文出现乱码,最好先设置一下编码规则:
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql>


还原单个库(data1):(使用服务器本地的备份文件d:\data1_bak.sql
mysql> source d:\data1_bak.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql>

笺注:实验中,库data1的还原是成功的。





相关文章:
Linux下MySQL的备份和还原
使用SQLyog远程管理MySQL

Windows2008R2_UPUPW_网站的备份和还原

返回列表