Mysql 主从配置

Mysql 主从配置 实现读写分离

这里mysql安装不再赘述,假设已安装CentOS -> Mysql, mysql安装目录:/usr/local/
例:

主机IP: 10.10.10.170
从机IP: 10.10.10.171

主机配置

编缉主机配置文件:

vim /usr/local/mysql/my.cnf 

添加以下代码

server-id=170  #设置主服务器的ID
innodb_flush_log_at_trx_commit=2  #
sync_binlog=1  #开启binlog日志同步功能
log-bin=mysql-bin-170  #binlog日志文件名
log-bin-index=mysql-bin-170.index
# binlog-do-db=xxxx  # 这个表示只同步某个库 (如果没有此项,表示同步所有的库)
read-only=0 # 主机可读可写数据

登录mysql并进行以下操作

// 设置 root 密码
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';

// 允许外部IP访问以root账号访问
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

// 主服务器上开启远程权限,授权给从数据库服务器10.10.10.171,用户名mark,密码123456
mysql > grant replication slave on *.* to 'mark'@'10.10.10.171' identified by '123456';
mysql > show master status;
mysql > FLUSH PRIVILEGES;
mysql > exit;


从机配置:

vim /usr/local/mysql/my.cnf 

添加以下代码

server-id=171 #服务器ID
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-171
relay-log=localhost-relay-bin #从relay log开始读取的位置坐标
read-only=1 # 从机只读数据
#replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql,information_schema,performance_schema,test  #不复制某些库,按需要自行设置即可

登录mysql并操作

mysql > change master to  master_host='10.10.10.170', master_user='mark' ,master_password='123456';
mysql > start slave; # stop slave; reset slave;
mysql > show slave status \G; 

# Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功

好了,回到主机,测试添加删除数据库数据库,增删改数据,查看从机数据是否同步 ^_^