Mysql数据的备份与恢复

Mysql数据的备份与恢复
============备份数据库==========
============备份数据库==========
4.1准备工作:首先建表填充数据:
mysql> show tables;
Empty set (0.00 sec)
#数据恢复
mysql> system mysql -uroot -p'zxin10' zxin10_default < /tmp/zxin10.sqll
mysql> show tables;
+--------------------------+
| Tables_in_zxin10_default |
+--------------------------+
| test                     |
+--------------------------+
1 row in set (0.00 sec)
4.2填充中文数据解决乱码问题:
mysql> set names gbk;  #<--在数据插入时的编码问题


mysql> insert into test(name) values('白左');
Query OK, 1 row affected (0.00 sec)


mysql> select * from test;
+----+--------+
| id | name   |
+----+--------+
|  1 | Baizuo |
|  2 | 白左 |
+----+--------+
2 rows in set (0.00 sec)
说明:
mysql> show variables like 'character_set%'
    -> ;
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | latin1                                 |
| character_set_connection | latin1                                 |
| character_set_database   | latin1                                 |
| character_set_filesystem | binary                                 |
| character_set_results    | latin1                                 |
| character_set_server     | latin1                                 |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)


mysql> set names utf8
    -> ;
Query OK, 0 rows affected (0.00 sec)


mysql> show variables like 'character_set%'
    -> ;
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | utf8                                   |
| character_set_connection | utf8                                   |
| character_set_database   | latin1                                 |
| character_set_filesystem | binary                                 |
| character_set_results    | utf8                                   |
| character_set_server     | latin1                                 |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
set names utf8的作用是吧 character_set_system  character_set_client character_set_connection
全部改成uft8


#非交互式查看表内容
[root@c601 ~]# mysql -uroot -p'zxin10' --default-character-set=utf8 -e 'select * from zxin10_default.test'
+----+---------------+
| id | name          |
+----+---------------+
|  1 | Baizuo        |
|  2 | 白左        |
+----+---------------+
[root@c601 ~]# mysql -uroot -p'zxin10' -e 'select * from zxin10_default.test'
+----+--------+
| id | name   |
+----+--------+
|  1 | Baizuo |
|  2 | 白左 |
+----+--------+


[root@c601 ~]# cat /etc/sysconfig/i18n 
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"


4.3备份单个数据库
mysqldump -u USERNAME -p PASSWORD --default-character-set=latin1 DBNAME >BACKUPFILE
普通备份:
[root@c601 ~]# mkdir /server/bak
[root@c601 ~]# mysqldump -uroot -p'zxin10' zxin10_default >/server/bak/zxin10.sql
[root@c601 ~]# ll /server/bak/
total 4
-rw-r--r-- 1 root root 1903 Feb 16 15:37 zxin10.sql
压缩备份:
[root@c601 ~]# mysqldump -uroot -p'zxin10' zxin10_default|gzip >/server/bak/zxin10.sql.gz
[root@c601 ~]# ll /server/bak/
total 8
-rw-r--r-- 1 root root 1903 Feb 16 15:37 zxin10.sql
-rw-r--r-- 1 root root  750 Feb 16 15:38 zxin10.sql.gz
指定字符集备份:
[root@c601 ~]# mysqldump -uroot -p'zxin10' --default-character-set=utf8 zxin10_default|gzip >/server/bak/zxin10.sql_utf8.gz
[root@c601 ~]# ll /server/bak/
total 12
-rw-r--r-- 1 root root 1903 Feb 16 15:37 zxin10.sql
-rw-r--r-- 1 root root  751 Feb 16 15:39 zxin10.sql.gz
-rw-r--r-- 1 root root  749 Feb 16 15:40 zxin10.sql_utf8.gz
备份多个库
#参数-B
mysqldump -uroot -p'zxin10' -B zxin10_default mysql --default-character-set=utf8 >/server/bak/zxin10.utf8.sql
备份所有库
#参数-A
备份单个表
#不加-B参数,直接跟 '数据库名' '表名',会备份表。
mysqldump -uroot -p'zxin10' -uroot -p'zxin10' zxin10_default test --default-character-set=utf8 >/server/bak/zxin10_default.test.sql 
备份多个表
#不加-B参数,直接跟 ‘数据库名’ ‘表名1’ ‘表名2’,会备份表1和表2。
备份完成!
@@@@@只备份表结构@@@@@@@
#-d参数只备份表结构
[root@c601 bak]# mysqldump -uroot -p'zxin10' -d zxin10_default test >/server/bak/zxin10.desc.sql
[root@c601 bak]# egrep -v "\*|--|^$" /server/bak/zxin10.desc.sql 
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
@@@@@只备份表结构@@@@@@@


4.3.1 mysqldump命令在做什么呢?
[root@c601 ~]# egrep -v "\*|--|^$" /server/bak/zxin10.sql
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
LOCK TABLES `test` WRITE;
INSERT INTO `test` VALUES (1,'Baizuo'),(2,'白左');
UNLOCK TABLES;


在做SQL的逻辑备份,恢复是执行SQL语句命令。








============恢复数据库==========
============恢复数据库==========
5恢复数据库
5.1 source命令恢复
[root@c601 bak]# mysql -uroot -p'zxin10'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.62 Source distribution


Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> use zxin10_default
Database changed
mysql> show tables;
+--------------------------+
| Tables_in_zxin10_default |
+--------------------------+
| test                     |
+--------------------------+
1 row in set (0.00 sec)


mysql> drop table test;
Query OK, 0 rows affected (0.00 sec)


mysql> show tables;
Empty set (0.00 sec)


mysql> source /server/bak/zxin10.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)


Query OK, 0 rows affected (0.01 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.01 sec)


Query OK, 0 rows affected (0.00 sec)


Query OK, 0 rows affected (0.01 sec)


Query OK, 0 rows affected (0.00 sec)


Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0


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)


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> show tables;
+--------------------------+
| Tables_in_zxin10_default |
+--------------------------+
| test                     |
+--------------------------+
1 row in set (0.00 sec)


mysql> select * from test;
+----+--------+
| id | name   |
+----+--------+
|  1 | Baizuo |
|  2 | 白左 |
+----+--------+
2 rows in set (0.00 sec)


5.2使用mysql命令恢复(标准)
[root@c601 bak]# mysql -uroot -p'zxin10' -e "use zxin10_default;drop table test;"
[root@c601 bak]# mysql -uroot -p'zxin10' -e "use zxin10_default;select * from test"
ERROR 1146 (42S02) at line 1: Table 'zxin10_default.test' doesn't exist
[root@c601 bak]# mysql -uroot -p'zxin10' -e "use zxin10_default;show tables;"


开始备份
[root@c601 bak]# mysql -uroot -p'zxin10' zxin10_default < /server/bak/zxin10.sql
[root@c601 bak]# mysql -uroot -p'zxin10' -e "use zxin10_default;select * from test"
+----+--------+
| id | name   |
+----+--------+
|  1 | Baizuo |
|  2 | 白左 |
+----+--------+
备份成功!


===========补充==============
查看当前系统进程数
[root@c601 bak]# mysql -uroot -p'zxin10' -e "show processlist;"
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
| 48 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
查看mysql的系统变量设置
[root@c601 bak]# mysql -uroot -p'zxin10' -e "show variables;"|head -5Variable_name Value
auto_increment_increment 1
auto_increment_offset 1
autocommit ON
automatic_sp_privileges ON
查看mysql的当前状态(全局)
[root@c601 bak]# mysql -uroot -p'zxin10' -e " show global status;"|head -5
Variable_name Value
Aborted_clients 2
Aborted_connects 10
Binlog_cache_disk_use 0
Binlog_cache_use 0
查看mysql的当前状态(局部)
[root@c601 bak]# mysql -uroot -p'zxin10' -e " show session status;"|head -5
Variable_name Value
Aborted_clients 2
Aborted_connects 10
Binlog_cache_disk_use 0
Binlog_cache_use 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值