今天服务器被黑客攻击了,把服务器数据、mysql数据库全部删除了,找来找去,还是无法从服务器上找回自己的数据。
那黑客要我3BT币。唉,郁闷
为了防止那样的事情下次再发生,故此,在这里做一下服务器的主从。
第一步:
先准备好两台服务器
192.168.61.105 主
192.168.61.107 从
备注:
作为主从服务器的MySQL版本建议使用同一版本!
或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本!
vi /etc/sysconfig/iptables #编辑
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口
特别提示:如果这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面,添加好之后防火墙规则如下所示:
service iptables start; 开启
service iptables stop; 关闭
关闭防火墙服务即可:
查看防火墙信息:
#/etc/init.d/iptables status
关闭防火墙服务:
#/etc/init.d/iptables stop
首先登录 192.168.61.105 这台服务器
进入mysql服务器执行:
grant replication slave on *.* to 'backup'@'192.168.61.107' identified by '123456';
第二步:打开 /etc/my.cnf配置文件
这个文件怎么找?
rpm -qa | grep mysql
rpm -ql mysql-libs-5.1.73-5.el6_7.1.i686
看到 /etc/my.cnf 这个文件,使用 vim /etc/my.cnf
server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db =mysql #不需要备份的数据库,多个写多行
注意: log_bin 这个目录必须是要有写的权限: /var/log/mysql/mysql-bin.log 这个目录可以自定义去设置,
看mysql 使用的帐号是mysql 因此我就把 /var/log/mysql 这个目录的组、权限设为mysql所拥有
chown -R mysql:mysql /var/log/mysql
要这的权限即可,能写能读取。
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
show master status; #查看主服务器,出现以下类似信息
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000011 | 107 | osyunweidb | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
第三步:打开从服务器
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.61.105
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-do-db=cimie #要复制这个数据库
replicate-ignore-db=mysql #不复制某个库
第四步:重新启动服务器即可
先重启主服务器 192.168.61.105 重启命令: service mysqld restart;
再次重启从服务器 192.168.61.107 重启命令: service mysqld restart;
第五步:测试是否已经同步
看到以上的效果,证明已经同步成功了。
Mysql slave 同步异常解决
需要注意事项:切记不要随意去更改从服务器的数据,这样会造成主从服务器不同步,以后就不会同步了。
可以通过 show master status \G; 这样的方法去查看
show slave status \G; 这是在从服务器上的。
mysql> change master to master_log_file='mysql-bin.000002',master_log_pos=379
start slave;
show slave status \G; 通过这样来恢复不同步的问题。
只有是上面的这个状态,才能正常同步数据。
hange master to master_host='192.168.21.128',master_user='osyunweidbbak',master_password='123456',master_log_file='mysql-bin.000011' ,master_log_pos=107; #执行同步语句
详细:http://www.osyunwei.com/archives/7269.html