MySQL设置主从数据库

一个好汉三个帮,一个篱笆三个桩,在java开发中,mysql是一个非常好用的关系型数据库,但是在现在的时代,高并发的问题产生了,我们的SQL弟弟无法一个人满足我们这么多的需求,人家也要休息啊,累了,想少干点活,于是呢,伟大的java程序员,来解救他了,给他叫来了小弟,让他做大哥,随便干点活(只是对数据进行写的操作),其他的活交给了小弟干(读取数据)。
小弟从何而来,当然是别家的啊,是吧,于是我们要在建立一个家,让小弟们有地方住,当然,大方的话,可以为每一个小弟做个一个家,宽敞是吧,建立一个新的mysql2号,作为小弟,给大哥mysql1号干活,但是呢我们大哥要和小弟一样,虽然是小弟,但是也是兄弟啊,需要给他一些权力,与大哥一个版本,这样的话,大哥要做的事小弟都会干,同时呢,我们也要给mysql2号一个汇报工作啊,干完活了,找大哥说一声,一起喝杯酒是不是,犒劳一下,怎么给大哥汇报,来了,走着。
给大哥说一下,小弟需要报告的,修改一下配置文件;
授权给从数据库服务器(小弟mysql2号)

  mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.8.11' identified by 'test123456';
    mysql>FLUSH PRIVILEGES;

修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效

vim /etc/my.cnf

在该配置文件[mysqld]下面添加下面内容:

[mysqld]

    log-bin=/var/lib/mysql/binlog
    server-id=1
    binlog-do-db = cmdb

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

server-id:master端的ID号;
log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的
binlog-do-db:要同步的数据库名
还可以显示 设置不同步的数据库:
binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test
修改配置文件后,重启服务:service mysqld restart
如果启动失败,通过cat /var/log/mysqld.log | tail -30 查看mysql启动失败的日志,从日志内容寻找解决方案。
看下小弟的信息,大哥有没有
查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

mysql> show master status;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 |     1304 | cmdb         |                  |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)

这样大哥就已经有啦小弟的信息了,汇报的时候就可以进行接受,不会不认识小弟了!

大哥有小弟了,小弟也要知道大哥是不!我们就给小弟说一下,他他他,是你哥哥,要听话哦!
配置从库理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

[mysqld]
server-id=2
master-host=192.168.8.10
master-user=rep1
master-password=test123456
master-port=3306
replicate-do-db=cmdb

重启时报错:mysqld: unknown variable ‘master-host=

说明mysql大哥不认识这些变量,网上搜罗了一番,原因是mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置:也就是说,上面就只有设置sever-id=2(2号代表的是2号小弟,二哥呢!)其他信息呢,通过下面的方法进行配置

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
  MASTER_PORT=3306,
  MASTER_USER='rep1',
  MASTER_PASSWORD='test123456',
  MASTER_LOG_FILE='binlog.000001',
  MASTER_LOG_POS=1304; #后面两个参数的值与主库保持一致

叫小弟干活了,大哥不想干了!
启动slave进程

mysql> start  slave ;
Query OK, 0 rows affected (0.04 sec)

大哥小弟都有了,大哥不在累了,哎呀呀,晚上喝酒兄弟们!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值