zoukankan      html  css  js  c++  java
  • MySQL读写分离主从配置

    MySQL主从设置

    MySQL主从复制,读写分离的设置非常简单:

    修改配置my.cnf文件

    master 和 slave设置的差不多:

    1
    2
    3
    [mysqld]
    log-bin=mysql-bin
    server-id=222

    log-bin=mysql-bin的意思是:启用二进制日志。

    server-id=222的意思是设置了服务器的唯一ID,默认是1,一般取IP最后一段,可以写成别的,只要不和其他mysql服务器重复就好。

    这里,有的MySQL默认的my.cnf文件引用了/etc/mysql/conf.d路径下的所有cnf文件,因此,也可以在/etc/mysql/conf.d目录下添加一个cnf文件,添加上以上内容

    分别重启master和slave机器的mysql

    /etc/init.d/mysql restart

    master上建立账户并授权slave,slave上也做好相关配置

    用root用户分别登录master和slave机器:

    1
    mysql -uroot -p //输入之后会让你输入root密码,输入root密码就算登陆了

    master机器上

    建立账户并授权slave机器,注意用户名和密码,可以随意设置,但是一定要记下来,因为后面slave还需要用到

    1
    GRANT REPLICATION SLAVE ON *.* to 'ryugou'@'%' identified by 'ryugou';

    一般不用root帐号,@'%'表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

    slave机器上

    查看master状态

    1
    show master status;

    在mysql终端输入

    复制代码 代码如下:

    change master to master_host='xxx.xxx.xxx.xxx',master_user='ryugou',master_password='ryugou',master_log_file='mysql-bin.000004',master_log_pos=120;

    master_log_file就是master机器上的对应的内容,master_log_pos也是,注意查看master状态上的内容。

    master_user和master_password就是master机器上授权时设置用户名和密码。

    启动从服务器

    1
    start slave;

    检查从服务器复制功能状态

    1
    show slave statusG;

    会出现一个列表

    主要看Slave_IO_Running和Slave_SQL_Running 这俩状态必须都为Yes。

    master创建数据库,从服务器设置用户访问权限

    在master上创建数据库 test,会发现在slave上也创建了 test,现在想要读写分离,slave上的机器某用户gou可以访问它,但是只能读

    1
    grant select on test.* to gou;
  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/zyiii/p/8822007.html
Copyright © 2011-2022 走看看