主数据库master配置
1.修改mysql配置
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
做一下修改
log-bin = /var/log/mysql/mysql-bin.log #开启二进制日志,默认是注释掉的,我们去掉注释
server-id = 1 #设置server-id
bind-address = 0.0.0.0 #默认是127.0.0.1,此处我们设置为任意地址,放开远程访问,这么操作之前一定要确保防火墙配置正确,否则会产生安全风险
2.重启mysql,创建用于同步的用户账号
创建用户并授权:用户:repl 密码:slavepass
$ sudo service mysql restart
登陆mysql
mysql -u root -p后输入密码
CREATE USER 'repl'@'182.254.149.39' IDENTIFIED BY 'slavepass'; #创建用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'182.254.149.39'; #分配权限
flush privileges#刷新权限
quit;
select Host,user from mysql.user 可查看user的账号和授权的ip;
show -master status 查看日志文件
记录master_log_file 的值 mysql-bin.000004,master_log_pos的值120
从数据库slave配置
1.服务器修改mysql配置
log_bin =/var/log/mysql/mysqlbin.log #记录操作日志
replicate_ignore_db = mysql #不同步mysql系统数据库
slave_skip_errors = all
server_id = 2
2.修改好重启mysql服务,登录mysql
change master to master_host='192.168.106.132',master_user='repl',master_password=''slavepass',master_log_file='mysql-bin.000004',master_log_pos=120;
ok,
然后
start slave;开启服务
show slave status\G;
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
最后就可以验证了
验证
主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
mysql> create database hi_db;
Query OK, 1 row affected (0.00 sec)
mysql> use hi_db;
Database changed mysql> create table hi_tb(id int(3),name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into hi_tb values(001,'bobu');
Query OK, 1 row affected (0.00 sec)
然后查看从数据时候有表和数据;
mysql> show databases;