安装

Linux平台安装
创建用户
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql
useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
chown mysql:mysql -R /mysql

数据库初始化
cd /mysql/mysql/bin
./mysqld –user=mysql –basedir=/mysql/mysql –datadir=/mysql/mysql/data –initialize
生成临时密码
2016-05-13T00:19:19.691854Z 1 [Note] A temporary password is generated for root@localhost: X=Hgvio2emY#

修改配置文件中的参数

cd /mysql/mysql/support-files/
vi mysql.server
basedir=/mysql/mysql
datadir=/mysql/mysql/data

生成全局参数配置文件:
[root@primary support-files]# cp /mysql/mysql/support-files/my-default.cnf /etc/my.cnf

启动MYSQL:
[root@primary mysql]# ./support-files/mysql.server start
Starting MySQL..[ OK ]

创建自动启动:
cp /mysql/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig –list mysqld
chkconfig –level 2345 mysqld on
chkconfig mysqld on

检查端口,验证数据库是否启动:
netstat -lntup |grep 330
ss -lntup |grep 330

进入后修改密码:
mysql> alter user ‘root’@’localhost’ identified by ‘root’;
Query OK, 0 rows affected (0.00 sec)


快速登录

vi /etc/profile
alias mysql=’mysql -uroot -proot’
Windows平台安装
初始化:
mysqld –user=mysql –basedir=E:\mysql –datadir=E:\mysql\data –initialize
创建服务:
mysqld –install mysql –defaults-file=”E:\mysql\my-default.ini”

net start mysql

初始密码:.\data\zxq.err
root@localhost: UvRhc-ove1c:

E:\mysql\bin>mysql.exe -u root -p
Enter password: **
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.13

Copyright (c) 2000, 2016, 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>

出现如下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user ‘root’@’localhost’ identified by ‘root’;

mysql> SET PASSWORD=PASSWORD(‘root’);
下面是关于如何设置MySQL用户账号的到期日期一个简单例子:
mysql> ALTER USER ‘testuser’@’localhost’ PASSWORD EXPIRE;


    多实例创建

一、 初始化后结构:
[root@primary data]# tree -L 3 ../data/
../data/
|– 3306
| |– data
| | |– auto.cnf
| | |– ib_buffer_pool
| | |– ib_logfile0
| | |– ib_logfile1
| | |– ibdata1
| | |– mysql
| | |– performance_schema
| | -- sys
|
– my.cnf
-- 3307
|-- data
| |-- auto.cnf
| |-- ib_buffer_pool
| |-- ib_logfile0
| |-- ib_logfile1
| |-- ibdata1
| |-- mysql
| |-- performance_schema
|
– sys
`– my.cnf

[root@primary data]# ls
3306 3307
[root@primary data]# chown -R mysql:mysql *

./mysqld –user=mysql –basedir=/mysql/mysql –datadir=/mysql/mysql/data/3306/data –initialize
2016-05-13T01:12:49.485921Z 1 [Note] A temporary password is generated for root@localhost: tqtP0dR#wa>k

./mysqld –user=mysql –basedir=/mysql/mysql –datadir=/mysql/mysql/data/3307/data –initialize
2016-05-13T01:13:20.422615Z 1 [Note] A temporary password is generated for root@localhost: R1ZcfY!63Tk5

启动实例。使用如下命令:
/mysql/mysql/bin/mysqld_safe –defaults-file=/mysql/mysql/data/3306/my.cnf &
/mysql/mysql/bin/mysqld_safe –defaults-file=/mysql/mysql/data/3307/my.cnf &
ps aux |grep mysqld

启动实例时错误:
2016-05-13T01:32:12.808575Z mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
解决方法:
su – root
mkdir /usr/local/mysql/bin
ln -s /mysql/mysql/bin/mysqld /usr/local/mysql/bin/mysqld

验证是否启动:
[root@primary data]# netstat -lntup |grep 330
[root@primary data]# ss -lntup |grep 330
tcp 0 0 :::3307 :::* LISTEN 7247/mysqld
tcp 0 0 :::3306 :::* LISTEN 6896/mysqld

[root@primary data]# ps aux |grep mysqld
root 6579 0.0 0.0 9364 1320 pts/1 S 09:33 0:00 /bin/sh /mysql/mysql/bin/mysqld_safe –defaults-file=/mysql/mysql/data/3306/my.cnf
mysql 6896 0.3 4.0 1121784 120400 pts/1 Sl 09:33 0:00 /usr/local/mysql/bin/mysqld –defaults-file=/mysql/mysql/data/3306/my.cnf –basedir=/mysql/mysql –datadir=/mysql/mysql/data/3306/data –plugin-dir=/mysql/mysql/lib/plugin –user=mysql –log-error=/mysql/mysql/data/3306/data/ilanni.err –pid-file=/mysql/mysql/data/3306/data/ilanni.pid –socket=/mysql/mysql/data/3306/data/mysql.sock –port=3306
root 6928 0.1 0.0 9360 1320 pts/1 S 09:34 0:00 /bin/sh /mysql/mysql/bin/mysqld_safe –defaults-file=/mysql/mysql/data/3307/my.cnf
mysql 7247 2.5 4.0 1121792 119564 pts/1 Sl 09:34 0:00 /usr/local/mysql/bin/mysqld –defaults-file=/mysql/mysql/data/3307/my.cnf –basedir=/mysql/mysql –datadir=/mysql/mysql/data/3307/data –plugin-dir=/mysql/mysql/lib/plugin –user=mysql –log-error=/mysql/mysql/data/3307/data/ilanni.err –pid-file=/mysql/mysql/data/3307/data/ilanni.pid –socket=/mysql/mysql/data/3307/data/mysql.sock –port=3307
root 7278 0.0 0.0 103244 832 pts/0 S+ 09:35 0:00 grep mysqld


登录不同的实例

mysql -uroot -p -S /mysql/mysql/data/3306/data/mysql.sock
mysql -uroot -p -S /mysql/mysql/data/3307/data/mysql.sock

远程登录:
CREATE USER ‘zxq’@’%’ IDENTIFIED BY ‘zxq’;
GRANT SELECT,INSERT,UPDATE,DELETE ON . TO ‘zxq’@’%’;
GRANT ALL ON . TO ‘zxq’@’%’;

mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

mysql -h 192.168.111.111 -u root -p -S /mysql/mysql/data/3306/data/mysql.sock


启动停止脚本创建

vi mysql
#!/bin/sh
port=3306
mysql_user=”root”
mysql_pwd=””
CmdPath=”/mysql/mysql/bin”
mysql_sock=”/mysql/mysql/data/{port}/data/mysql.sock”  
  #startup function  
function_start_mysql()  
{if [ ! -e “
mysql_sock” ];then
printf “Starting MariaMySQL…\n”
/bin/sh CmdPath/mysqldsafedefaultsfile=/mysql/mysql/data/ {port}/my.cnf 2>&1 > /dev/null &
else
printf “MariaMySQL is running…\n”
exit
fi}
#stop function
function_stop_mysql()
{if [ ! -e “ mysqlsock];thenprintfMariaMySQLisstopped\nexitelseprintfStopingMariaMySQL\n {CmdPath}/mysqladmin -u mysqluserp {mysql_pwd} -S /mysql/mysql/data/${port}/data/mysql.sock shutdown
fi}
#restart function
function_restart_mysql()

printf “Restarting MariaMySQL…\n”
function_stop_mysql
sleep 2
function_start_mysql
}
case 1instart)functionstartmysql;;stop)functionstopmysql;;restart)functionrestartmysql;;)printfUsage:/mysql/mysql/data/ {port}/mysql {start|stop|restart}\n”
esac


不同实例的配置文件

3306 my.cnf配置文件

[client]
port = 3306
socket = /mysql/mysql/data/3306/data/mysql.sock
[mysqld]
port = 3306
socket = /mysql/mysql/data/3306/data/mysql.sock
basedir = /mysql/mysql
datadir = /mysql/mysql/data/3306/data
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-name-resolve
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size = 500M
server-id = 1
[mysqld_safe]
log-error=/mysql/mysql/data/3306/data/ilanni.err
pid-file=/mysql/mysql/data/3306/data/ilanni.pid
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

3307 my.cnf配置文件
[client]
port = 3307
socket = /mysql/mysql/data/3307/data/mysql.sock
[mysqld]
port = 3307
socket = /mysql/mysql/data/3307/data/mysql.sock
basedir = /mysql/mysql
datadir = /mysql/mysql/data/3307/data
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-name-resolve
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size = 500M
server-id = 1
[mysqld_safe]
log-error=/mysql/mysql/data/3307/data/ilanni.err
pid-file=/mysql/mysql/data/3307/data/ilanni.pid
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout


存储引擎

MyISAM –5.5.5之前默认引擎
1) 不支持事物
2) 表级锁
3) 读写相互阻塞
4) 只会缓存索引
5) 读取较快,占用资源较少
6) 不支持外键约束,但支持全文索引
使用场景:
1) 不需要事物支持的场景(读事物多的网站)
2) 读多的应用,读写都频繁的不适合
3) 并发访问相对低的业务(读写都多的),纯读纯写的可以
4) 数据修改业务较少
5) 读为主的业务
6) 对数据一致性不高的业务
7) 中小网站的部分业务
MyISAM调优:
1) 设置合理的索引(缓存机制)
2) 调整读写优先级
3) 启用延迟插入,改善大批量写入性能
4) 降低并发

InnoDB –后面版本默认引擎
1) 支持事物
2) 行级锁定
3) 高效的缓存机制,可缓存索引和数据
4) 支持分区和表空间
5) 支持外键约束5.5后支持全文索引
使用场景:
1) 事物支持
2) 行级锁要求高并发
3) 更新较多的场景
4) 数据读一致性要求高的业务
5) 具有较大内存设备的
InnoDB调优:
1) 主键尽量小
2) 避免全表扫描,因为会锁表
3) 尽可能缓存所有的索引和数据
4) 尽量自己控制autocommit
5) 合理设置innodb_flush_log_at_trx_commit参数,不要过度追求安全(0每秒自动写日志到磁盘)
6) 避免主键更新,因为会带来大量的数据迁移

MyISAM:系统版都是MyISAM引擎
-rw-r—– 1 mysql mysql 10816 Jul 26 06:54 user.frm –表结构定义
-rw-r—– 1 mysql mysql 512 Jul 28 00:27 user.MYD –表数据
-rw-r—– 1 mysql mysql 4096 Jul 28 02:06 user.MYI –表索引

查看表的引擎:

mysql> show create table zxq\G
***************** 1. row *****************
Table: zxq
Create Table: CREATE TABLE zxq (
id int(11) DEFAULT NULL,
KEY zxq_indx (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

InnoDB:
-rw-r—– 1 mysql mysql 8556 Jul 28 15:20 zxq.frm
-rw-r—– 1 mysql mysql 114688 Jul 28 15:20 zxq.ibd

开启、关闭自动提交

set autocommit =0;
set autocommit=1;

mysql> show variables like ‘%autocommit%’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| autocommit | ON |
+—————+——-+
1 row in set (0.00 sec)

InnoDB独立表空间
独立表空间:
优点:
1. 每个表都有自已独立的表空间。
2. 每个表的数据和索引都会存在自已的表空间中。
3. 可以实现单表在不同的数据库中移动。
4. 空间可以回收(除drop table操作处,表空不能自已回收)
a) Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter table TableName engine=innodb;回缩不用的空间。
b)对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。
c)对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。

缺点:
单表增加过大,如超过100个G。
结论:
共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整一 下:innodb_open_files 。
InnoDB Hot Backup(冷备)的表空间cp不会面对很多无用的copy了。而且利用innodb hot backup及表空间的管理命令可以实现单现移动。

修改独占空表空间的数据存储位置
innodb_data_home_dir = “/mysql/mysql/data/”
innodb_log_group_home_dir = “/mysql/mysql/data/”
innodb_data_file_path=ibdata1:10M:autoextend
innodb_file_per_table=1
参数说明:
这个设置配置一个可扩展大小的尺寸为10MB的单独文件,名为ibdata1。没有给出文件的位置,所以默认的是在MySQL的数据目录内。【对数据来进行初始化的设置】
innodb_data_home_dir 代表为数据库文件所存放的目录
innodb_log_group_home_dir 为日志存放目录
innodb_file_per_table 是否使用共享以及独占表空间来

  1. innodb_file_per_table设置.开启方法:
    在my.cnf中[mysqld]下设置
    innodb_file_per_table=1
  2. 查看是否开启
    mysql> show variables like ‘innodb_file_per_table’;
    +———————–+——-+
    | Variable_name | Value |
    +———————–+——-+
    | innodb_file_per_table | ON |
    +———————–+——-+
    1 row in set (0.01 sec)
  3. 关闭独享表空间
    innodb_file_per_table=0关闭独立的表空间
    mysql> show variables like ‘%per_table%’;

修改表的引擎
查看表的引擎
mysql> show create table zxq\G
***************** 1. row *****************
Table: zxq
Create Table: CREATE TABLE zxq (
id int(11) DEFAULT NULL,
KEY zxq_indx (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
修改表的引擎:
alter table zxq engine=innodb;
alter table zxq engine=MYiSAM;
3. binlog启用
binlog启用
vi /etc/my.cnf
添加参数:
server-id = 1
log_bin=mysql-bin
log-error=/mysql/mysql/mysqld.log
binlog_format=mixed
启动服务:
[root@primary mysql]# ./support-files/mysql.server start
Starting MySQL.[ OK ]

检查log-bin日志:
[root@primary data]# ls -al
total 122960
drwxr-xr-x 5 mysql mysql 4096 Jul 26 07:41 .
drwxr-xr-x 10 7161 wheel 4096 Jul 26 07:37 ..
-rw-r—– 1 mysql mysql 56 Jul 26 06:54 auto.cnf
-rw-r—– 1 mysql mysql 315 Jul 26 07:37 ib_buffer_pool
-rw-r—– 1 mysql mysql 12582912 Jul 26 07:41 ibdata1
-rw-r—– 1 mysql mysql 50331648 Jul 26 07:41 ib_logfile0
-rw-r—– 1 mysql mysql 50331648 Jul 26 06:54 ib_logfile1
-rw-r—– 1 mysql mysql 12582912 Jul 26 07:41 ibtmp1
drwxr-x— 2 mysql mysql 4096 Jul 26 06:54 mysql
-rw-r—– 1 mysql mysql 154 Jul 26 07:41 mysql-bin.000001
-rw-r—– 1 mysql mysql 19 Jul 26 07:41 mysql-bin.index
-rw-rw—- 1 root root 5 Jul 26 07:41 mysqld_safe.pid
drwxr-x— 2 mysql mysql 4096 Jul 26 06:54 performance_schema
-rw-r—– 1 mysql root 21286 Jul 26 07:37 primary.err
-rw-r—– 1 mysql mysql 5 Jul 26 07:41 primary.pid
drwxr-x— 2 mysql mysql 12288 Jul 26 06:54 sys
刷新bin-log:
[root@primary data]# mysqladmin -uroot -proot flush-logs;

mysql-bin日志内容查看:
[root@primary bin]# ./mysqladmin -uroot -proot flush-logs
[root@primary data]# mysqlbinlog mysql-bin.000001

生成脚本:
[root@primary data]# mysqlbinlog mysql-bin.000001 –d zxq >zxq.sl
查看里面的sql内容:
[root@primary data]# egrep -v “#|*|–|^$” zxq.sql

关闭sql_log_bin:

数据恢复
mysql> use zxq;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> drop table zxq;
Query OK, 0 rows affected (0.08 sec)

mysql>
mysql> source zxq.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)

Database changed
Query OK, 0 rows affected (0.00 sec)

mysqldump命令必须带上–flush-logs选项以生成新的二进制日志文件:
mysqldump –single-transaction –flush-logs –master-data=2 > backup.sql

恢复数据时如下:
shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql
shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

binlog参数
启用binlog
log-bin =/xxx/mysql-bin

从库启用binlog
log-slave-updates

定期删除binlog
expire_logs_days = 7
   类似:find /xxx/ -type f –name “mysql-bin.000*” –mtime +7|xargs rm -f

Binlog分析
–start-date
–stop-date
–start-position
–stop-position

mysqlbinlog –stop-date=”2005-04-20 9:59:59” /var/log/mysql/bin.123456 | mysql -u root –pmypwd

mysqlbinlog –start-date=”2005-04-20 10:01:00” /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd \

mysqlbinlog –start-date=”2005-04-20 9:55:00” –stop-date=”2005-04-20 10:05:00” \
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

mysqlbinlog –stop-position=”368312” /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd

mysqlbinlog –start-position=”368315” /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd \

mysqldump数据备份

数据库备份
数据库备份,指定数据库:
mysqldump -uroot -p123 zxq > zxq.dump

–opt
如果加上–opt参数则生成的dump文件中稍有不同:
建表语句包含drop table if exists tableName
. insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables

跨主机备份:
使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:
mysqldump –host=host1 –opt sourceDb| mysql –host=host2 -C targetDb
-C指示主机间的数据传输使用数据压缩

只备份表结构:
mysqldump –no-data –databases mydatabase1 > test.dump
如果要备份某个MySQL主机上的所有数据库可以使用–all-databases选项

实现定时备份(crontab):
30 1 * * * root mysqldump -u root -pPASSWORD –all-databases | gzip > /mnt/disk2/database_date '+%m-%d-%Y'.sql.gz

定制的备份脚本:

#vi /backup/backup.sh
#!bin/bash
cd /backup
echo “You are in backup dir”
mv backup* /oldbackup
echo “Old dbs are moved to oldbackup folder”
File = backup- Now.sqlmysqldumpuuserppassworddatabasename> File
echo “Your database backup successfully completed”

脚本制定执行计划:
#crontab -e
30 1 * * * /backup.sh

mysqldump常用参数
–all-databases , -A 导出全部数据库
mysqldump -uroot -p –all-databases
-databases, -B导出几个数据库。参数后面所有名字参量都被看作数据库名。mysqldump -uroot -p -databases test mysql
–master-data
这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER命令;如果等于2,会加上注释前缀。并且这个选项会自动打开–lock-all-tables,除非同时设置了–single-transaction(这种情况下,全局读锁只会在开始dump的时候加上一小段时间,在任何情况下,所有日志中的操作都会发生在导出的准确时刻。这个选项会自动关闭–lock-tables。
–single-transaction
通过将导出操作封装在一个事务内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了–single-transaction选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句:ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE,这会导致一致性快照失效。这个选项开启后会自动关闭–lock-tables
-all-tablespaces , -Y导出全部表空间。
mysqldump -uroot -p –all-databases –all-tablespaces–no-tablespaces
-y不导出任何表空间信息。
mysqldump -uroot -p –all-databases –no-tablespaces
–skip-comments取消注释
mysqldump -uroot -p –all-databases (默认记录注释)
mysqldump -uroot -p –all-databases –skip-comments
–compress, -C在客户端和服务器之间启用压缩传递所有信息
mysqldump -uroot -p –all-databases –compress
–default-character-set设置默认字符集,默认值为utf8
mysqldump -uroot -p –all-databases –default-character-set=latin1
–events, -E导出事件。
mysqldump -uroot -p –all-databases –events
–flush-logs开始导出之前刷新日志。
mysqldump -uroot -p –all-databases –flush-logs
–flush-privileges在导出mysql数据库之后,发出一条FLUSH PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。
mysqldump -uroot -p –all-databases –flush-privileges
–force在导出过程中忽略出现的SQL错误。
mysqldump -uroot -p –all-databases –force
–host, -h需要导出的主机信息
mysqldump -uroot -p –host=localhost –all-databases

备份恢复案例
整个数据库备份恢复:
mysqldump -u root -p test_db > test_db.sql
如要对数据进行还原,可执行如下命令:
mysql -u username -p test_db < test_db.sql
还原数据库操作还可以使用以下方法:
mysql> sourcetest_db.sql

增量恢复案例:

刷新日志,并记录备份点:
[root@primary backup]# mysqldump -uroot –proot -F –flush-logs -B test>|gzip >mysqlback_$(date_%F).sql.gz

找出mysqlback_$(date_%F).sql.gz的CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000001’, MASTER_LOG_POS=154;

模拟增加数据:
mysql> insert into zxq values(4),(5),(6);
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0

模拟误删除数据库:
mysql> drop database test;
Query OK, 1 row affected (0.10 sec)

mysql> show variables like ‘%log_bin%’;
+———————————+———————————–+
| Variable_name | Value |
+———————————+———————————–+
| log_bin | ON |
| log_bin_basename | /mysql/mysql/data/mysql-bin |
| log_bin_index | /mysql/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+———————————+———————————–+

mysql> show master status\G
***************** 1. row *****************
File: mysql-bin.000001
Position: 423
Binlog_Do_DB: test
Binlog_Ignore_DB: information_schema,performance_schema,mysql,sys,zxq
Executed_Gtid_Set:
1 row in set (0.00 sec)

分析bin-log,找出后面增量的日志:
mysqlbinlog –start-position=”154” /mysql/mysql/data/mysql-bin.000001>test.sql

编辑test.sql注释掉drop database test

进行恢复:

mysql –uroot –proot

Logo

更多推荐