赞
踩
mysql> create database aa; Query OK, 1 row affected (0.00 sec) mysql> create database bb; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | aa | | bb | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql> exit Bye [root@bogon mysql]# cat /etc/my.cnf [client] socket=/usr/local/mysql/data/mysql.sock [mysqld] socket=/usr/local/mysql/data/mysql.sock #绑定监听地址 0.0.0.0 bind-address = 0.0.0.0 # 跳过域名解析,如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待 skip-name-resolve #设置 3306 端口 port = 3306 # 设置 mysql 的安装目录 basedir=/usr/local/mysql # 设置 mysql 数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=2048 # 服务端使用的字符集默认为 utf8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 表名存储在磁盘是小写的,但是比较的时候是不区分大小写 lower_case_table_names=1 # 接收数据包的大小 max_allowed_packet=16M [root@bogon ~]# grep datadir /etc/my.cnf datadir=/usr/local/mysql/data [root@bogon ~]# systemctl stop mysqld [root@bogon ~]# mkdir /backup [root@bogon ~]# cd /usr/local/mysql/ [root@bogon mysql]# ls bin data docs include lib LICENSE man README share support-files [root@bogon mysql]# tar zcf /backup/mysql-all-$(date +%F).tar.gz data/ [root@bogon mysql]# ls /backup/ mysql-all-2024-07-29.tar.gz mysql-all.tar-2024-07-29.gz [root@bogon mysql]# systemctl start mysqld [root@bogon mysql]# scp /backup/mysql-all-2024-07-29.tar.gz root@192.168.72.145:/root/ root@192.168.72.145's password: mysql-all-2024-07-29.tar.gz 100% 1319KB 82.8MB/s 00:00
[root@bogon ~]# ls anaconda-ks.cfg auto-install-mysql57-glibc auto-install-mysql57-glibc.tar.gz mysql-all-2024-07-29.tar.gz [root@bogon ~]# systemctl stop mysqld [root@bogon ~]# ls /usr/local/mysql/ bin data docs include lib LICENSE man README share support-files [root@bogon ~]# mv /usr/local/mysql/data/ /usr/local/mysql/data.old [root@bogon ~]# tar zxf mysql-all-2024-07-29.tar.gz [root@bogon ~]# ls anaconda-ks.cfg auto-install-mysql57-glibc.tar.gz mysql-all-2024-07-29.tar.gz auto-install-mysql57-glibc data [root@bogon ~]# mv data/ /usr/local/mysql/ [root@bogon ~]# systemctl start mysqld # 测试是否备份恢复成功 [root@bogon ~]# mysql -uroot -p123 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | aa | | bb | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql> exit Bye
# 备份指定库中的部分表
# mysqldump [选项] 库名 [表名 1] [表名 2] … > /备份路径/备份文件名
mysqldump -uroot -p mysql user > mysql_user.sql
# 备份一个或多个完整的库(包括其中所有的表)
# mysqldump [选项] --databases 库名 1 [库名 2] … > /备份路径/备份文件名
mysqldump -uroot -p --databases mysql > mysql.sql
# 备份 MySQL 服务器中所有的库
# mysqldump [选项] --all-databases > /备份路径/备份文件名
# -A 是 --all-databases的简写
mysqldump -uroot -p --all-databases > all-data.sql
mysqldump -uroot -p -A > all-data.sql
# 删除数据库 aa 和 bb mysql> drop database aa; Query OK, 0 rows affected (0.00 sec) mysql> drop database bb; Query OK, 0 rows affected (0.00 sec) # 查看数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) # mysql [选项] [库名] [表名] < /备份路径/备份文件名 # 恢复所有数据库 [root@bogon ~]# mysql -uroot -p < all-data.sql Enter password: # 查看数据库 [root@bogon ~]# mysql -uroot -p -e 'show databases;' Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | aa | | bb | | mysql | | performance_schema | | sys | +--------------------+
# 开启二进制日志功能
[root@bogon ~]# vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
binlog_format = MIXED
server-id=1
# 重启服务
[root@bogon ~]# systemctl restart mysqld
# 有 mysql-bin.000001 就代表成功
[root@bogon ~]# ls /usr/local/mysql/data/mysql-bin.*
/usr/local/mysql/data/mysql-bin.000001 /usr/local/mysql/data/mysql-bin.index
mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p 密码
# 格式 1:恢复数据到指定位置。
mysqlbinlog --stop-position='操作 id' 二进制日志 |mysql -u 用户名 -p 密码
# 格式 2:从指定的位置开始恢复数据。
mysqlbinlog --start-position='操作 id' 二进制日志 |mysql -u 用户名 -p 密码
# 格式 1:从日志开头截止到某个时间点的恢复。
mysqlbinlog [--no-defaults] --stop-datetime='年-月-日 小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码
# 格式 2:从某个时间点到日志结尾的恢复。
mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码
# 格式 3:从某个时间点到某个时间点的恢复。
mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' --stop-datetime='年-月-日小时:分钟:秒' 二进制日志
[root@bogon ~]# mysql -uroot -p123 CREATE DATABASE client; USE client; CREATE TABLE user_info( IdentityCard CHAR(20) NOT NULL, name CHAR(20) NOT NULL, gender CHAR(4), UserID CHAR(10) NOT NULL, expenses INT(10)); INSERT INTO user_info VALUES('000006','张三','男','016','10'); INSERT INTO user_info VALUES('000007','李四','女','017','91'); INSERT INTO user_info VALUES('000008','王五','女','018','23'); SELECT * FROM user_info; mysql> exit Bye
[root@bogon ~]# mkdir /mysql_bak
[root@bogon ~]# mysqldump -uroot -p -A > /mysql_bak/mysql-all.sql
Enter password:
# 刷新日志
[root@bogon ~]# mysqladmin -uroot -p flush-logs
[root@bogon ~]# ls /usr/local/mysql/data/mysql-bin.*
/usr/local/mysql/data/mysql-bin.000001 /usr/local/mysql/data/mysql-bin.index
/usr/local/mysql/data/mysql-bin.000002
USE client; INSERT INTO user_info VALUES('000009','赵六','男','019','37'); INSERT INTO user_info VALUES('000010','孙七','男','020','36'); # 停顿几秒之后再插入 INSERT INTO user_info VALUES('000011','张三','男','021','35'); INSERT INTO user_info VALUES('000012','李四','男','022','37'); # 刷新日志 [root@bogon ~]# mysqladmin -uroot -p flush-logs Enter password: [root@bogon ~]# ls /usr/local/mysql/data/mysql-bin.* /usr/local/mysql/data/mysql-bin.000001 /usr/local/mysql/data/mysql-bin.000003 /usr/local/mysql/data/mysql-bin.000002 /usr/local/mysql/data/mysql-bin.index # 备份 [root@bogon ~]# cp /usr/local/mysql/data/mysql-bin.000002 /mysql_bak/ [root@bogon ~]# ls /mysql_bak/ client_userinfo-2024-07-29.sql mysql-all.sql mysql-bin.000002 [root@bogon ~]# ls /mysql_bak/ client_userinfo-2024-07-29.sql mysql-all.sql mysql-bin.000002 # 查看 [root@bogon ~]# mysqlbinlog --no-defaults /mysql_bak/mysql-bin.000002
[root@bogon ~]# mysql -uroot -p -e 'DROP database client;'
Enter password:
[root@bogon ~]# mysql -uroot -p -e 'show databases;'
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
[root@bogon ~]# mysql -uroot -p < /mysql_bak/mysql-all.sql
Enter password:
[root@bogon ~]# mysql -uroot -p -e 'show databases;'
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| client |
| mysql |
| performance_schema |
| sys |
+--------------------+
# 把mysql-bin.000002的内容全部恢复 mysqlbinlog --no-defaults /mysql_bak/mysql-bin.000002 | mysql -uroot -p --start-position --stop-position [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | +--------------+--------+--------+--------+----------+ # 恢复 孙七 之前的内容 基于位置 623 [root@bogon ~]# mysqlbinlog --no-defaults --stop-position='623' /mysql_bak/mysql-bin.000002 | mysql -uroot -p Enter password: [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | | 000009 | 赵六 | 男 | 019 | 37 | +--------------+--------+--------+--------+----------+ # 恢复 孙七 之后的内容 基于位置 623 [root@bogon ~]# mysqlbinlog --no-defaults --start-position='623' /mysql_bak/mysql-bin.000002 | mysql -uroot -p Enter password: [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | | 000009 | 赵六 | 男 | 019 | 37 | | 000010 | 孙七 | 男 | 020 | 36 | | 000011 | 张三 | 男 | 021 | 35 | | 000012 | 李四 | 男 | 022 | 37 | +--------------+--------+--------+--------+----------+
--start-datetime --stop-datetime mysqlbinlog --no-defaults --start-datetime='2024-07-28 22:13:33' /mysql_bak/mysql-bin.000002 | mysql -uroot -p mysqlbinlog --no-defaults --stop-datetime='2024-07-28 22:13:33' /mysql_bak/mysql-bin.000002 | mysql -uroot -p [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | +--------------+--------+--------+--------+----------+ # 恢复 孙七 之前的内容 基于时间 2024-07-29 10:13:20 [root@bogon ~]# mysqlbinlog --no-defaults --stop-datetime='2024-07-29 10:13:20' /mysql_bak/mysql-bin.000002 | mysql -uroot -p Enter password: [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | | 000009 | 赵六 | 男 | 019 | 37 | +--------------+--------+--------+--------+----------+ # 恢复 孙七 之后的内容 基于时间 2024-07-29 10:13:20 [root@bogon ~]# mysqlbinlog --no-defaults --start-datetime='2024-07-29 10:13:20' /mysql_bak/mysql-bin.000002 | mysql -uroot -p Enter password: [root@bogon ~]# mysql -uroot -p -e 'select * from client.user_info;' Enter password: +--------------+--------+--------+--------+----------+ | IdentityCard | name | gender | UserID | expenses | +--------------+--------+--------+--------+----------+ | 000006 | 张三 | 男 | 016 | 10 | | 000007 | 李四 | 女 | 017 | 91 | | 000008 | 王五 | 女 | 018 | 23 | | 000009 | 赵六 | 男 | 019 | 37 | | 000010 | 孙七 | 男 | 020 | 36 | | 000011 | 张三 | 男 | 021 | 35 | | 000012 | 李四 | 男 | 022 | 37 | +--------------+--------+--------+--------+----------+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。