第一章:mysql配置主从复制

    技术2026-04-03  17

    1.最小白安装linux版的mysql5.7

    准备主机:192.168.31.202  

    从机:192.168.31.203

    cd /usr/local/

    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    yum -y install mysql57-community-release-el7-10.noarch.rpm

    yum -y install mysql-community-server

    systemctl start  mysqld.service      #启动mysql

    下面进行修改密码

    grep "password" /var/log/mysqld.log      #查看原始密码

    cd /usr/bin/

    ./mysql -uroot -p     #回车后提示输入原始密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

    如果提示说密码过于简单,报错无法通过

    我们可以修改规则:

    mysql> set global validate_password_policy=0;

    mysql> set global validate_password_length=1;

    然后再次执行上面修改root的密码即可

     

    2.配置主机和从机的my.cnf配置文件

    在主机 192.168.31.202 编辑 /etc/my.cnf 文件

    nano /etc/my.cnf

    加上以下配置

    server-id=1 #指定服务器id log-bin=mysql-bin #启动二进制日志 binlog-ignore-db=mysql #不要复制的数据库 binlog-ignore-db=information_schema #不要复制的数据库 binlog-do-db=testdb #要复制的数据库 binlog_format=STATEMENT

    在从机 192.168.31.203 编辑 /etc/my.cnf 文件

    加上以下配置

    nano /etc/my.cnf

    server-id=2 relay-log=mysql-relay

     

     

    3.在主机的mysql创建slave用户

    在主机登录mysql

    ./mysql -uroot -proot

    mysql> select user,host from mysql.user;      #查看有哪些用户,我们发现并没有slave用户,于是创建它

    mysql> set global validate_password_policy=0;      #设定密码规则

    mysql> set global validate_password_length=1;       #设定密码规则

    mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';      #用户和密码都是slave

    mysql> grant replication slave on *.* to 'slave'@'%' identified by 'slave';      #授权slave用户允许被复制

    mysql> show master status;    (查看File字段的值:mysql-bin.000002 , position字段的值:684)

    要把file字段和position字段的内容记下来,从机要用上它

     

     

    4.在从机上的配置

    ./mysql -uroot -proot

    ###下面语句,其中192.168.31.202是主机的ip,用户和密码都是slave,最后两个属性就是从主机中获取的字段值

    mysql> CHANGE MASTER TO MASTER_HOST='192.168.31.202', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=684;

    如果报错:this operation cannot be performed with a running slave thread。。。。

    那么执行下面语句:

    mysql> stop slave;

    mysql> reset master;

    然后再次执行CHANGE MASTER TO 。。。。。这写代码

    接下来开启slave

    mysql> reset slave;

    mysql> start slave;

     

    然后查看是否完成主从复制

    mysql> show slave status\G;

    如果发现这两个属性都是yes,那么恭喜你,主从复制配置成功

     

    主机只负责插入数据,从机只负责读取数据。

    从机插入数据是无法同步到主机的

    以此类推,一主多从可以实现

    接下来第二章学习mycat中间件的配置

     

    Processed: 0.011, SQL: 9