您的位置:首页 > 运维架构 > Linux

VirtualBox+centos 配置mysql主从

2012-09-18 17:21 591 查看
参考http://www.mike.org.cn/articles/mysql-master-slave-sync-conf-detail/

利用VirtualBox虚拟两台服务器,配置mysql主从。

环境:

centos 5.5

mysql5.5

A主机ip:192.168.2.175

B主机ip:192.168.2.176

centos iptalbes 防火墙 开启3306端口,否则连接不上

#vi /etc/sysconfig/iptables

如果没有下面一行,则添加上去
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 3306 --state NEW -j ACCEPT

重启防火墙
#/etc/sysconfig/iptables restart

#iptables -L

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:mysql

有上面这行,代表已经成功开启了mysql外部链接


主从配置过程

主服务器

创建同步用户

在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。

服务器A:

mysql>CREATE USER 'replication'@'%' IDENTIFIED BY '000000';
mysql>GRANT REPLICATION SLAVE ON * . * TO 'replication'@'%' IDENTIFIED BY '000000' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
mysql>flush privileges;
修改mysql配置文件(默认路径/etc/my.cnf)
[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db=mysql

重启mysql服务
# mysql restart

Restarting MySQL...
Stoping MySQL...
Starting MySQL...


查看主服务器状态

mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 2056
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)


从服务器

修改mysql配置文件(/etc/my.cnf)

server-id = 2


重启mysql服务

# mysql restart

Restarting MySQL...
Stoping MySQL...
Starting MySQL...


用change master语句指定同步位置

mysql>change master to master_host='192.168.2.175', master_user='replication', master_password='000000', master_log_file='mysql-bin.000003', master_log_pos=2056;
注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定。master_log_file对应File,master_log_pos对应Position。

mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

启动从服务器线程
mysql>start slave;

查看从服务器状态

mysql>show slave status\G

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

查看以上两项的值,均为Yes则表示状态正常。


测试主从同步

先在主库中插入一条新的数据

mysql> use test;
Database changed
mysql> desc test;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | smallint(6)  | NO   | PRI | NULL    | auto_increment |
| title   | varchar(255) | NO   |     | NULL    |                |
| content | text         | NO   |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> insert into test (title)value('hello world');
Query OK, 1 row affected, 1 warning (0.00 sec)


在从库中查询,看到之前主库新增的数据就成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: