MySQL的主从配置

Jackey MySQL 3,423 次浏览 , 没有评论

MYSQL主从复制功能介绍

主从原理:mysql中有一种日志叫做bin日志(二进制日志),这个日志会记录下所有对MYSQL进行修改的SQL语句。当向主服务器执行SQL语句时,这条SQL语句会被传递到从服务器上再执行一遍。

什么时候什么主从复制?

1. 备份
2. 优化(读写分离)

四台服务器互为主从(环形结构):

3. 优化(多地域)

设计一个留言板,但是考虑到不同地区的人使用的优化。(北京、上海、纽约、非洲)
在南北方分别添加服务器,然后配置一个智能的DNS服务器,可以解析用户到本地的服务器上,要注意的就是不同地域的数据的同步。

搭建步骤

  1. 修改每台MYSQL服务器的配置文件 my.cnf(windows下是my.ini)
    添加:
    log-slave-updates = true // 如果是环形多服务器,要设置这一项,
    server-id = 1 // 设置服务器id 号,多台电脑的id不同相同
    log-bin=mysql-bin // 开启 bin日志(主从的原理是使用Bin日志,所以必须开启)
  2. 在主服务器上创建一个slave 账户(如果是环形就每台服务器上都创建一个)
    GRANT REPLICATION SLAVE ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
    username : 是账号名
    password : 是密码
    练习:在MYSQL中创建一个abc账号密码为1234,这个账号只可以查询test数据库中的所有的表
    GRANT SELECT ON test.* TO “abc”@”%” IDENTIFIED BY “1234”
  3. 在主服务器查询信息(查看主服务器的信息)
    FLUSH TABLES WITH READ LOCK; //缓存数据写到磁盘并锁表;如果是正在运行的服务器,需要锁
    show master status;

    记录下:File和Positiion的两个值
  4. 在从服务器上设置主服务器的IP地址等信息
    CHANGE MASTER TO
    MASTER_HOST='10.71.182.4' # 主服务器ip
    ,MASTER_USER='dcj', # 主服务器上slave账户名
    MASTER_PASSWORD='dcj', # 主服务器上slave 密码
    MASTER_LOG_FILE='mysql-bin.000001', # 主服务器上记录的file
    MASTER_LOG_POS=251; # 主服务器上记录的Position
  5.  启动从服务器(在从服务器执行)
    start slave
  6. 查看主从状态(在从服务器上执行)
    show slave status \G

    当你看到 Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    都为Yes的时候恭喜您配置成功了。
  7. mysql.ini添加设置自增的步长与起始数字(环形主从配置)
    auto_increment_increment=3 ; 每次加几
    auto_increment_offset=1 ; 从几开始加

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go