mysql主从双机配置

注:以下过程为本人亲测,如有问题请留言,未经许可,请勿转载

有两台服务器:

主服务器:10.130.24.**4

从服务器:10.130.24.**7

需要同步的数据库名为:全部数据库,

一、配置主服务器

修改配置文件my.cnf

#vi /etc/my.cnf

 

[mysqld]

server-id = 1     #主机标示,整数

log-bin=/var/log/mysql/mysql-bin.log  #开启二进制日志,确保此文件可写

read-only = 0  #主机,读写都可以

sync_binlog = 1 #每经过1次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)

innodb_flush_log_at_trx_commit = 1 #设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同

expire_logs_days=10 #二进制日志过期时间

重启MySQL:

#service mysqld restart

登录MySQL服务器。

#mysql -uroot –p123456

在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。

insert into mysql.user(Host,User,Password) values("10.130.24.77","replicate",password("123456"));
flush privileges;
grant all privileges on *.* to replicate@'10.130.24.77' identified by '123456' with grant option;
flush privileges;

执行以下命令锁定数据库以防止写入数据。

mysql>flush tables with read lock;

这时不要退出mysql命令行,因为退出命令行后,全局表锁就失效,新开一个窗口继续执行以下命令。

导出数据库

#mysqldump -u root -p123456 --all-databases > /root/all.sql

再次连接数据库进入mysql命令行查看master状态。

mysql>SHOW MASTER STATUS;   记下显示的信息,配置从服务器会用到。

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 | 88438818 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

解锁数据表

mysql>UNLOCK TABLES;

 

二、配置从服务器

导入主服务器的数据库

scp /root/all.sql root@10.130.24.**7:/root

#mysql -u root -p123456 < /root/all.sql

编辑配置文件my.cnf

[mysqld]

server-id = 2 #可以自己定义,只要保证唯一的就行

log_bin = /var/log/mysql/mysql-bin.log

master-host =10.130.24.**4

master-user =replicate

master-pass =123456

master-port =3306

master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)

保存文件并重启mysqld。

#service mysqld restart

连接主服务器。

mysql>change master to

>master_host='10.130.24.**4',master_user='replicate',master_password='123456',

>master_log_file='mysql-bin.000006',master_log_pos=299879;

启动slave进程

mysql>start slave;

查看mysql的日志,一般在/var/log/目录下,如果启动成功,你应该会看到类似下面的日志。
091104 8:42:02 [Note] Slave I/O thread: connected to master‘root@X.X.X.X:3306?, replication started in log‘mysql-bin.000001? at position 98

注:设置主服务器的数据库二进制日志的过期时间,可以在配置文件中使用参数expire_logs_days来设定。

三、验证

主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

mysql> create database hi_db;

Query OK, 1 row affected (0.02 sec)

 

mysql> use hi_db;

Database changed

mysql> create table hi_tb(id int(3),name char(10));

Query OK, 0 rows affected (0.05 sec)

 

mysql> insert into hi_tb values(001,'bobu');

Query OK, 1 row affected (0.01 sec)

 

mysql> show databases;

+--------------------+

| Database          |

+--------------------+

| information_schema |

| acdcenter         |

| axxw              |

| customerlog       |

| enterpriseuc      |

| errorcode         |

| hi_db             |

| ipinfo_v3 

从服务器Mysql查询验证。

mysql> select * from hi_tb;

+------+------+

| id  | name |

+------+------+

|   1 | bobu |

+------+------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值