相关资讯
本类常用软件
-
福建农村信用社手机银行客户端下载下载量:584204
-
Windows优化大师下载量:416904
-
90美女秀(视频聊天软件)下载量:366961
-
广西农村信用社手机银行客户端下载下载量:365699
-
快播手机版下载量:325855
网站最重要的数据,如果数据异常而你又没有做好备份那是很难恢复的,今天小编教你将两台服务器的mysql数据库进行同步,这样子我们如果我们网站出了问题,我们就可以用最快的速度进行切换,这样子才能不影响用户的访问。
环境:两台机器,已经安装好了mysql(尽量版本相同,版本也可以不相同。两台机器在同一个网络,可以互相ping通)
主机A(master):192.168.1.80 (ubuntu server 11.10 & mysql 5.5.17)
主机B(slave):192.168.1.81(centos 6.3 & mysql 5.1.61)
1: 在master上授权slave的复制账户和权限,使slave可以从主机A上去复制数据。
- mysql>grant all privileges on oa.* to admin@localhost identified by '在这里定义密码';
- mysql>grant select,insert,update,delete on *.* admin@localhost identified by '密码';
- mysql>grant select,insert,update,delete on *.* admin@'192.168.1.%' identified by '密码';
- mysql> revoke all privileges on *.* from admin@localhost; ← 取消admin用户对数据库的操作权限
- mysql>delete from mysql.user where user='admin' and host='localhost'; ← 删除admin用户
- mysql> flush privileges; ← 刷新,使以上操作生效
# iptabels -A INPUT -m state --state NEW -m tcp -ptcp --dport 3306 -j ACCEPT
3:修改主机A的mysql配置文件my.cnf,并设置编码为UTF-8.
- [mysqld]
- #注意:该部分server-id=Master_id必须为1到232–1之间的正整数值。从服务器的ID必须与主服务器的ID不相同。
- server-id =1
- #用户slaver读取的二进制日志文件。
- log-bin=msyql-bin
- #要复制的数据库replication-do-db=oa
- #数据库存放的目录
- datadir=/var/lib/mysql
- socket=/var/lib/mysql/mysql.sock
- # Default to using old password format for compatibility with mysql 3.x
- # clients (those using the mysqlclient10 compatibility package).
- old_passwords=1 ← 找到这一行,在这一行的下面添加新的规则,让MySQL的默认编码为UTF-8
- default-character-set = utf8 ← 添加这一行
- 然后在配置文件的文尾填加如下语句:
- [mysql]
- default-character-set = utf8
- server-id =2
主机A上master上面需要的同步的数据库比较大时,先锁定数据表,然后导出数据库。再到主机B slave上导入数据库。
- mysql> flush tables with read lock; mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000583 | 6682 | oa19 | |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)
- 在不停主库的情况下备份数据库,root@80:~# mysqldump-uroot -pxxxx -h127.0.0.1 --databases oa --master-data=1 > bak.sql
- [root@sample~]#scp /home/back/mysql_bak.$(date +%F).sql.gz root@192.168.1.81:/tmp/
- [root@sample~]#gzip -d mysql_bak.$(date +%F).sql.gz
- 在从服务器上导入数据
- [root@sample~]#mysql>source /home/back/mysql_bak.$(date +%F).sql
mysql>change master to master_host='192.168.1.80',
- >master_user='admin',
- >master_password='123456',
- >master_log_file='mysql-bin.000583',
- >master_log_pos=107;
- mysql>start slave;
- mysql>show slave status\G;
- 注意:此处的master_log_pos=107或者master_port=3306处,千万不要添加引号,负责会出现语法的错误。
热门评论
最新评论