一,先装mysql
准备两台服务器,主服务器是10.0.0.200 副服务器是10.0.0.128
主服务器当作mysql的服务端,下载mysql-server
yum install mysql-server
副服务器当作mysql的客户端,下载mysql
yum install mysql
服务端
service mysqld start # 启动服务
mysql -uroot -p # 登陆
#密码为空,直接回车就登陆进来了
show database; # 显示库
create user 'xiaoming'@'10.0.0.128' identified by '123456'; # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
create user 'xiaoming'@'%' identified by '123456'; # 新建用于同步的账号xiaoming,允许所有从库登陆,密码是123456
flush privileges; # 立即刷新
客户端 从库
mysql -uroot -p -h10.0.0.200 # 登陆mysql服务端
123456 # 紧接着输入密码
# 然后就登陆进来了
二,mysql主从复制配置
原理:主库里面执行sql语句(data changes),数据变动之后,它会将这些变动存到自己的日志(binary log)里面去,里面村的二进制。然后日志内容交给从库,从库就从这些二进制中读取变动,然后将这些变动写入自己的日志(Realy log),然后从库将这些变动转化为sql语句并执行sql语句。这样就完成了数据同步的作用。
2.1 主库添加配置
# 在根目录,不在mysql中
vim /etc/my.cnf # mysql服务端配置默认在根目录里的etc里面的一个my.cnf文件里面
# 添加到[mysqld]的下面
server-id=1
log-bin=mysql-bin # 日志,注意名字不固定,可以叫mysql-s,就是通过这个配置,实现了写入日志的功能
# 然后保存退出
service mysqld restart # 重启mysql服务端
2.2 主库添加从库账号,要通过一个账号同步
create user 'xiaoming'@'10.0.0.128' identified by '123456'; # 新建用于同步的账号xiaoming,允许同步的从库地址是10.0.0.128,密码是123456
grant replication slave on *.* to 'xiaoming'@'10.0.0.128'; # 远程授权授权给地址为10.0.0.128的xiaoming账号的所有库所有表
2.3 查询主库的状态
show master status;
mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 370 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
mysql-bin.000001这个文件就是主库里面的Binary log日志文件
File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到 后面从库会用到 后面从库会用到!
change master to master_host='10.0.0.200',
master_user='xiaoming',
master_password='123456',
master_log_file=mysql-bin.000001',
master_log_pos=370;