MySQL主从配置

主配置

主从主要实现的是读写分离,这样做法的优势有很多,我所理解的一个是缓解服务器的读写压力.

在Ubuntu下,配置文件为my.cnf,位置为/etc/mysql/my.cnf

在windows下,配置文件为my.ini

vim my.cnf # 进入配置文件进行设定

server-id=200 # 设置主服务器的ID,主和从的id号不能相同

innodb_flush_log_at_trx_commit=2 # 防止断电数据丢失

sync_binlog=1 # 开启binlog日志同步功能

log-bin=mysql-bin-200 # binlog日志文件名

binlog-do-db=xxx # 这个表示同步哪个库,不写的话表示同步所有的库

主配置完成后,重启主库

service mysql restart

mysql -uroot -p # 登陆

grant replication slave on . to ‘‘mark‘@’192.168.1.201’ identified by ‘123456’; # 授权给从数据库服务器192.168.1.201, 用户名mark, 密码123456

show master status; # 查看主库的状态

从配置

vim my.cnf

server-id = 201 # 不能和主ID一样

innodb_fiush_log_at_trx_commit=2

sync_binlog=1

log-bin=mysql-bin-201

从配置完成后,重启重库

service mysql restart

mysql -uroot -p

change master to master_host=’192.168.1.200’, master_user=’mark’,master_password=’123456’,master_log_file = ‘mysql-bin-200.000002’,master_log_pos=1167; # 这里是建立与主服务器的连接,master_log_pos需要查看主数据库中position的数值

start slave; # 开启从库

show slave status; # 查看从数据库状态

验证主从

主从中的数据库需要相同,主数据库在进行改动时,从数据库是可以查看的,主数据库负责写,从数据库负责读,分摊数据库压力.