Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务,首先确保主从服务器上的Mysql版本相同。
一、安装部署mysql
1、 安装服务器端:yum install mysql-server yum install mysql-devel 安装客户端: yum install mysql 2、 启动服务: service mysqld start
二、设置密码
/usr/bin/mysql_secure_installation
三、开启MySQL远程登录
登录数据库:mysql -u root -p123456 #root账号 #123456数据库密码
切换到mysql系统数据库:mysql>use mysql;
修改user表用户权限:mysql>update user set host='%'where host='127.0.0.1';
重载系统权限:mysql>flush privileges; #这个一定要执行
开启3306远程端口权限:iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
#查看规则是否生效
iptables -L -n
# 或者: service iptables status
#此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
可能会提示失败或者报错,其实是保存成功了的。解决方法。重启mysql服务:service mysqld restart
二、配置mysql主从同步
准备两台测试的虚拟机,如上安装mysql环境,并开启mysql服务
主master : 192.168.2.46
从slave : 192.168.227.129
1、配置主库:
授权给从数据库服务器
mysql>GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.227.129' identified by '123456'; mysql>FLUSH PRIVILEGES;
修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效:vim /etc/my.cnf ,在该配置文件[mysqld]下面添加下面内容:
[mysqld] log-bin=/var/lib/mysql/binlog server-id=1 binlog-do-db = cmdb #cmdb要同步的数据库名binlog-ignore-db = mysql 不同步mysql库和test库binlog-ignore-db = test datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock ......
server-id:master端的ID号;
log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的;
修改配置文件后,重启服务:service mysqld restart
查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
mysql> show master status; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | binlog.000001 | 106 | cmdb | | +---------------+----------+--------------+------------------+ row in set (0.00 sec)
主服务器已配置好。
2、配置从库
理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:
[mysqld] server-id=2 master-host=192.168.2.46 master-user=root master-password=123456 master-port=3306 replicate-do-db=cmdb ......
启动slave进程
mysql> slave start; Query OK, 0 rows affected (0.04 sec)
查看slave的状态,如果下面两项值为YES,则表示配置正确:show slave status\G:
文章来源: https://www.cnblogs.com/aqicheng/p/10214908.html
标签: