数据库主从配置
首先在每个要设置主从数据库的节点安装好数据库,数据库版本最好一样。
1)、主数据库配置(controller)
配置my.cnf
vi /etc/mysql/my.cnf
[mysqld]
#max_connect_errors = 10000 加注释
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_ignore_db = mysql
重启mysql服务
service mysql restart
2)、从数据库配置(compute)
若是要配置多个从节点则server-id 要进行修改,保证每个节点id不一致
配置my.cnf
vi /etc/mysql/my.cnf
[mysqld]
#bind-address = 127.0.0.1 加注释
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
replicate_wild_ignore_table = mysql.%
replicate_wild_ignore_table = keystone.token
重启mysql服务
service mysql restart
3)、查看master是否启动
进入主数据库
mysql -uroot -p
查看主数据状态
show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000012 | 185346 | | |
+------------------+----------+--------------+------------------+
启动成功会显示这个,没有显示则检查配置文件,成功后退出
quit;
4)、第一次同步主从数据库要先保证主从数据库一致
将需要的主数据库进行备份并且导入到从数据库
方法1)mysqldump -u账号 -p密码 --databases 数据库名 > 备份数据库名
例如:
mysqldump -u用户名 -p密码 --databases 需要配置到从数据库的数据库名 > db.sql
将备份数据库拷贝到从节点
scp db.sql root@172.16.17.6:~
进入从节点
ssh root@172.16.17.6
将备份数据导入从节点
mysql -uroot -p密码 < db.sql
5)、在主数据库节点上查看master状态,记录File、Position值
mysql -uroot -p
show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000012 | 185346 | | |
+------------------+----------+--------------+------------------+
记录mysql-bin.000012 和 185346
6).在从节点上创建slave
a)进入数据库
mysql -uroot -p
b)停止slave
stop slave;
c)创建slave
change master to master_host=‘主数据ip’,master_port=3306,master_user=‘主数据库用户名’,master_password=‘主数据库密码’,master_log_file=‘上一步记录的File值’,master_log_pos=上一步记录的Position值;
例如:
change master to master_host='172.16.17.4',master_port=3306,master_user='用户名',master_password='密码',master_log_file='mysql-bin.000012',master_log_pos=185346;
d)启动slave
start slave;
e)查看slave状态
show slave status\G;
显示
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则表示数据主从同步开始
7)、安装percona-toolkit 检测主从同步工具
安装工具
apt-get install percona-toolkit
检查数据库是否相同
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=checksums.checksums --create-replicate-table h=主数据ip地址,u=主数据库用户名,p=主数据库密码,P=端口号
例如:
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=checksums.checksums --create-replicate-table h=172.16.17.4,u=用户名,p=密码,P=3306
没有报错误,并且diff一列为0则表示同步成功
注意事项
1.新装从数据库可能出现授权问题远程无法访问
a)、注释掉从节点/etc/mysql/my.cnf文件里的
#bind-address = 127.0.0.1
b)、进入从节点数据库
mysql -uroot -p
use mysql;
select host,user,password from user;
grant all privileges on *.* to root@'%' identified by "密码";
flush privileges;
select host,user,password from user;
2.mysqldump导出数据库失败
在运行mysqldump的节点 注释/etc/mysql/my.cnf文件里的
#max_connect_errors = 10000