mysql主从同步配置详解

mysql主从同步配置详解

mysql的主从配置参考了不少文章,有的讲的很模糊,有的讲的是老版本,与当下流行的版本有很大出入,配置的过程中各种报错,在把一个一个的坑填完后,这里总结一份比较详细的正确配置步骤。

环境:

操作系统为64位windows10,mysql版本为5.7

主(master):192.168.94.23 端口:3308

从(slave):192.168.94.23 端口:3309

将事先下载好的5.7版本的mysql,复制两份,分别重命名mysql2(主库)和mysql3(从库),

官网下载地址:https://dev.mysql.com/downloads/

一、 安装主库

1、 在mysql1根目录下找到my.ini,如果根目录下没有这个文件,就新建一个,注意文件编码格式为ANSI,内容如下:

[mysqld]

#skip-grant-tables

#设置字符集为utf8

loose-default-character-set=utf8

basedir=E:\mysql2

datadir=E:\mysql2\data

port=3308

#设置数据库编码

character-set-server=utf8

#设置最大连接数

max_connections=2000

max_allowed_packet=10m

[client]

#设置客户端字符集

loose-default-character-set=utf8

2、 在mysql2的bin目录下,先初始化,然后安装mysql2服务,安装成功会有成功的提示,默认用户为root,密码为空,然后在上面my.ini文件里的第一行的#注释去掉,然后停止服务再重启,登陆,切换到mysql,修改默认密码,最后再重启一下mysql2服务,授予用户root,远程登陆权限,如果授权失败,需要重置用户,就重置一下用户,最后查询一下用户,如下图,到这里主库的安装准备工作完成了。

在这里插入图片描述

安装过程中用到的命令:

初始化

mysqld –initialize

安装mysql

mysqld install mysql2

登陆

mysql –u root –p –P 3308 –h 127.0.0.1

切换数据库

use mysql

修改默认密码

update user set authentication_string=PASSWORD(‘root’) where User=‘root’;

重置用户

alter user user() identified by “root”;

授予用户远程登陆权限

grant all privileges on . to ‘root’@’%’ identified by “root” WITH GRANT OPTION;

查询用户

select user,host from mysql.user;

二、 安装从库

从库的安装准备工作同主库

三、 主从配置

1、主库配置:完成第一步、第二步的主库和从库的准备工作后,先登陆主库,创建名称为abcd的数据库,在主库的my.ini文件中的[client]上一行加入,如下配置

server-id=1

log-bin=mysql-bin

binlog-do-db=abcd

,然后重启主库mysql2服务,接着再为从库创建一个用于从主库同步数据的用户zmgx,并授予从库读取权限,刷新权限,查看主库的状态,并记下File和Position的值,配置从库的时候会用到。如图:

在这里插入图片描述

3、 从库配置:

先登陆从库,创建名称为abcd的数据库,与主库一模一样,在从库的my.ini文件中的[client]上一行加入如下配置:

server-id=2

,然后重启从库mysql3服务,然后在从库中关闭同步服务,重新设置同步服务,

在主库中记下的file和Position的值就是在这个时候要用到的,然后重新启动同步服务,刷新权限,并查看从库状态,如图,表示主从同步设置成功

在这里插入图片描述

配置过程中用到的命令:

登陆主库

mysql -u root -p -P 3308 -h 192.168.94.23

创建名称为abcd的数据库

create database abcd default charset utf8 collate utf8_general_ci;

切换数据库

use abcd;

创建用户

create user ‘zmgx’@‘192.168.94.23’ identified by ‘zmgx’;

授予从库权限

grant replication slave on . to ‘zmgx’@‘192.168.94.23’ identified by ‘zmgx’;

刷新权限

flush privileges;

查询主库状态:

show master status\G;

关闭同步

stop slave;

设置主从同步

change master to master_host=‘192.168.94.23’,master_port=3308,master_user=‘zmgx’,master_password=‘zmgx’,master_log_file=‘mysql-bin.000001’, master_log_pos=154;

开启同步

start slave;

刷新权限

flush privileges;

查看从库状态

show slave status\G;

四、 验证

登陆主库,创建一个student表,

并插入一条数据,

切换到abcd库,

查询一下,主库已经有了插入的数据

在这里插入图片描述

登陆从库,切换到abcd库,然后查询student表,发现插入主库的数据已经同步到从库,验证说明上述配置成功、有效。

在这里插入图片描述

用到的命令:

创建student表

create table student(name varchar(10));

插入一条数据

Insert into student(name) values(‘java’);

切换数据库

Use abcd;

查询student

Select * from student;

猜你喜欢

转载自www.cnblogs.com/sqlservertongbu/p/11013581.html