mysql安装
我使用的系统是centos7,默认安装的版本是5.7.29。
以下操作在主从节点都要执行。
安装步骤如下:
wget -i -c http://repo.mysql.com/mysql57-community-release-el7.rpm
yum -y install mysql57-community-release-el7.rpm
yum -y install mysql-community-server mysql-devel
mysql设置
以下操作在主从节点都要执行。
启动MySQL:
systemctl start mysqld.service
systemctl status mysqld.service
获取root初始密码:
grep "password" /var/log/mysqld.log
登录并重置密码(根据个人喜好设定即可):
mysql –u root -p
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
设置远程访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
quit
此时,可在另外一台机器上远程连接到该mysql。
主节点配置
以下操作只在主节点执行。
修改配置文件:
vim /etc/my.cnf
[mysqld]
# 增加以下内容
log-bin = master-bin # 启用二进制格式日志
log_bin_index = master-bin.index
server-id=138 # server-id必须唯一
expire-logs-days=7 # 过期的日志会被清除
重启:systemctl restart mysqld.service
用root账户登录后创建一个同步账户:mysql-sync:
create user 'mysql-sync'@'%' identified by '123456';
GRANT REPLICATION SLAVE ON *.* to 'mysql-sync'@'%' identified by '123456';
show master status; # 查看master的状态,并记录File和Position信息
quit
从节点配置
以下操作只在从节点执行。
修改配置文件:
vim /etc/my.cnf
[mysqld]
# 增加以下内容
server-id = 114
relay-log = slave-relay-bin #启动中继日志服务并设置地址,中继日志就是存储主库过来的binlog日志
relay-log-index = slave-relay-bin.index #中继日志二进制文件索引地址
重启:systemctl restart mysqld.service
用root账户登录MySQL后设置主备同步项:
# 需要主节点的ip/port/username/passwd,以及主节点状态File和Position信息
change master to master_host='192.168.20.113',master_port=3306,master_user='mysql-sync',master_password='123456',master_log_file='master-bin.000001',master_log_pos=694;
stop slave;
start slave;
show slave status\G;
quit
测试同步情况
在主节点创建数据库并写入数据。
在从节点读取该数据,成功则表示主从创建ok,否则需要查找原因。