环境详情:

主服务器: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_filemaster_log_pos分别对应上面中查询出来的 File和Position

3、打开slave命令:

执行命令和结果如下:在这里插入图片描述

4、执行以下命令,确认是否配置成功:

#执行命令
show slave status\G;

在这里插入图片描述

注意!!!

这两个服务器间的数据库里面的表要一样,不然从机同步的时候,若没有相关的表会同步失败的,所以要让两个同步的数据库中的表要一样。出现错误,可以使用如下命令来忽略错误。

stop slave ;set global sql_slave_skip_counter=1;start slave;

大家有遇到其他问题,可以在评论区一起讨论哦~
部分参考网络上进行配置!(找不到借鉴的博客的链接了~)

—by sundae

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐