MySQL主从同步数据
MySQL主从数据库的同步
·
环境详情:
主服务器:windows server 2012
软件:Mysql5.6
从服务器:ubuntu-16.04
软件:Mysql5.7
一、首先配置主MySQL主服务器的配置文件
1、远程连接出现如下问题,提示:1130 - Host xxx is not allowed to connect to this MySQL server.
1. 打开终端 mysql -u xxx -p # 其中xxx 是数据库用户名,然后输入密码.
2. 显示数据库: show databases;
3.进入mysql数据库:use mysql;
4.显示数据库:show tables;
5.查看user表中的数据:select Host, User,Password from user;
6.修改user表中的Host:update user set Host=’%’ where User=‘root’;
7. 最后刷新一下:flush privileges;
8.然后重新连接,就可以连接上了。
2、配置主数据库的配置文件
1.进入mysql安装路径中,我的路径在:C:\Program Files\MySQL\MySQL Server 5.6
2.打开my.ini配置文件,并修改配置文件如下:
[mysqld]
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server_id = 41
#[必须]启用二进制日志
log_bin=mysql-bin
#需要备份的数据库名 多个库以逗号分隔
binlog-do-db=platform
#若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步
log_bin_trust_function_creators=TRUE
#忽略mysql这个数据库备份
binlog-ignore-db=mysql
#表示限制mysqld 的导入/导出只能发生在E:/data/目录下
secure-file-priv="E:/data"
二、配置从服务器ubuntu 的mysql配置文件
1、解决问题
1. ubuntu安装完mysql-server后,使用navicat工具无法连接服务器的数据库,按照上面的配置后还是无法连接。提示:2003 - Can't connect to MySQL server on xxxx 10061, 如下:
2. 应该是没有打开相关的ip访问,解决如下:
打开mysql的配置文件: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf,修改如下:
3. 重启mysql服务:sudo systemctl restart mysql.service ,然后就可以解决了。
2、配置从服务器的配置文件
1.打开 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf配置文件,设置server id ;
[mysqld]
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server_id = 99
2.然后重启mysql server:sudo systemctl restart mysql.service
三、开始在主数据库中建立账号并授权slave
1、连接进入主数据库mysql的命令行:执行
grant replication slave on *.* to 'shen'@'192.168.2.199' identified by 'shen123456';
一般不用root帐号,新建一个账号,ip就是只允许这个ip的服务器可以连接使用这个账号和密码,提升加强安全。ip的地方可以使用“%”号,表示表示所有客户端都可能连,只要帐号,密码正确就可以进入。如下:
2、检测账号检测授权结果,如下如果为Y,就证明完成。
select Repl_slave_priv from user where host='%' and user='shen';
3、登录主数据库A查看master状态
show master status;
执行结果如下:
注:执行完此步骤后不要再操作主MySql服务器了,防止主服务器状态值变化
四、配置从MySQL服务器
1、连接并打开从Mysql服务器的命令行,执行以下命令关闭slave;
2、配置在数据库上配置主MySQL服务器的信息
change master to
master_host='192.168.2.77',
master_user='shen',
master_password='shen123456',
master_log_file='mysql-bin.000074',
master_log_pos=3624;
其中,master_host为主机服务器的IP,master_user为上面三中建立的账号名,master_password为步骤三中建立的密码, master_log_file
和 master_log_pos
分别对应上面中查询出来的 File和Position
3、打开slave命令:
执行命令和结果如下:
4、执行以下命令,确认是否配置成功:
#执行命令
show slave status\G;
注意!!!
这两个服务器间的数据库里面的表要一样,不然从机同步的时候,若没有相关的表会同步失败的,所以要让两个同步的数据库中的表要一样。出现错误,可以使用如下命令来忽略错误。
stop slave ;set global sql_slave_skip_counter=1;start slave;
大家有遇到其他问题,可以在评论区一起讨论哦~
部分参考网络上进行配置!(找不到借鉴的博客的链接了~)
—by sundae
更多推荐
已为社区贡献2条内容
所有评论(0)