准备主机: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的密码即可
在主机 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
在主机登录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字段的内容记下来,从机要用上它
./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中间件的配置