Mysql主从服务配置

来源:互联网 发布:查询淘宝购物记录 编辑:程序博客网 时间:2024/05/17 03:57

测试数据库

master: 192.168.31.108 端口号6033 CentOS6.5
slave: 192.168.31.134 端口号3306 CentOS7.3

CentOS7.3安装MySQL数据库(主从数据库版本应一致,避免出错)

1.下载并解压mysql-5.7.14-1.el7.x86_64.rpm-bundle.tar安装包
2.安装MySQL必要包,注意先后顺序

rpm -ivh mysql-community-common-5.7.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.14-1.el7.x86_64.rpm

如果安装失败,查看是否有对应的冲突包 rpm -qa,rpm -e --nodeps *****删除冲突包
3.启动MySQL服务

service mysqld start

4.查看随机密码

grep 'temporary password' /var/log/mysqld.log

5.登录MySQL服务

mysql -uroot -p
# 并输入查询的随机密码

6.重置MySQL密码

set password = password('new password');

7.重启服务 service mysqld restart


MySQL主从服务配置
主服务必须有一个用户用于从服务同步,并具备REPLICATION SLAVE权限

GRANT REPLICATION SLAVE,FILE ON *.* TO 'slaveuser'@'192.168.31.134' IDENTIFIED BY 'slaveuser';
修改主服务器的/etc/my.cnf,开启二进制日志

server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
binlog-do-db=yhc
innodb_flush_log_at_trx_commit=1
sync_binlog=1

重启主库后, 锁库并记录位置

-- 更改master数据库的状态为只读FLUSH TABLES WITH READ LOCK;
-- 查看master状态,并记录log_file和positionshow master status;

将主库数据文件手动复制到从库上
配置从库,修改/etc/my.cnf

server-id=2
relay-log=slave-relay-bin

重启从库后,

-- 登录从服务器数据库,连接上Masterchange master to master_host='192.168.31.108', master_port=6033, master_user='slaveuser',master_password='slaveuser', master_log_file='master-bin.000001', master_log_pos=0;-- 启动从库start slave;

解除主库的只读

UNLOCK TABLES;

检验

-- 查看slave运行状态show slave status\G;


Slave_IO_RunningSlave_SQL_Running, 必须都为 Yes 才说明正常运行. 如果Slave_IO_Running : connecting,使用show master status; 查看master状态,核对master_log_file和master_log_pos是否一致。若一致,使用getenforce 检测是否开启enforce,如果为Enforcing,使用setenforce 0临时关闭,并查看slave状态,如果成功,则是SELinux强制限制访问。使用 getsebool -a |grep mysql 查看mysql限制情况,如果mysql_connect_any是否为on状态,如果不是,使用

setsebool -P mysql_connect_any 1

开启访问,并开启enforce setenforce 1
0 0
原创粉丝点击