您的位置:首页 > 数据库 > MySQL

mysql主从复制脱坑

2017-12-19 17:24 246 查看
我也是第一次弄这个mysql主从复制,爬坑总算爬出来了,分享一下爬坑心得;

准备的相关软件及系统版本:

mysql5.6解压版

两台服务器windosserver2012 64.

下载mysql就不多说了.

首先先在两台服务器上分别安装配置mysql,前面一部分安装是相同的,因为要实现mysql的主从复制,在后期配置的时候会有区别,下面我们在相同的服务器上进行相同的安装.

1.在两台服务器上安装mysql

①.配置环境变量:在系统环境变量的path中加入磁盘目录\mysql\bin的文件目录名

②.在你指定的主mysql目录下修改my.ini配置文件,我主mysql配置的如下

[client]
port = 3306
default-character-set = utf8
[mysqld]
basedir = C:/xuguoxi/mysql
datadir = C:/xuguoxi/mysql/data
port = 3306
character_set_server=utf8
server_id = 2
log-bin = mysql-bin
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


上面的配置你们刚下载的可能什么都没有,必须配置的有basedir,dayadir,port,server_id,log-bin,其他的可以默认,也可以自己根据需要添加

上面体现了主从复制配置的是server_id = 2(在配置主从复制的时候必须指定且不能与其他mysql重复),log-bin = mysql-bin(在主mysql端必须开启这个配置,默认不开启)

③.在你指定的从mysql目录下修改my.ini配置文件,我的从mysql配置如下

[client]
port = 3306
default-character-set = utf8
[mysqld]
basedir = C:/xuguoxi/mysql
datadir = C:/xuguoxi/mysql/data
character_set_server=utf8
port = 3306
server_id = 3
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


从服务器主要就指定了server_id = 3,要保证与主服务器不相同

④.在主mysql的服务器上配置

打开mysql/bin目录,按键shift+鼠标右键,选择在此处打开命令窗口,输入

mysqld -install


成功后再启动服务,失败请检查启动目录与文件

net start mysql


下面说一下与其相关的命令,修改配置文件后需要停止后再开启:

net stop mysql //停止mysql服务
sc delect mysql //删除mysql服务


登录mysql

mysql -u root -p


提示输入密码,直接回车,第一次登录不需要密码

设置密码

set password for 'root'@'localhost'=password('newpasswd');


增加远程访问用户及密码

CREATE USER 'xu'@'%' IDENTIFIED BY 'xu123456';


给远程用户所有权限

GRANT ALL PRIVILEGES ON *.* TO dx@"%" IDENTIFIED BY "dx123456";


最后刷新权限

FLUSH PRIVILEGES;


查看用户及权限表

SELECT User, Host, Password FROM mysql.user;


在从mysql上进行第4步操作

⑤.在主服务器上配置

使用root登录

查看log_bin是否开启成功,off没有,on开启成功,失败的话需要仔细检查配置文件

SHOW VARIABLES LIKE 'log_bin';


新增备份用户

GRANT REPLICATION SLAVE ON *.* to 'xubak'@'%'identified by 'xu123456';


刷新权限

FLUSH PRIVILEGES;


如果数据库有数据在写入,我们需要锁定数据库,不能写入数据,等配置结束后再解锁

lock table writer read;//锁定数据库
unlock tables;//解锁


查看主mysql一下主要的文件信息,记录一下获取的值

show master status;




上面的几个配置主要是备份的账号及获取了主mysql的日文件信息

⑥在从mysql服务器上配置

CHANGE MASTER TO
MASTER_HOST='主mysql服务器ip',
MASTER_PORT=3306,
MASTER_USER='xubak',
MASTER_PASSWORD='xu123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=2517;


开启主从

start slave;


查看主从配置是否成功

show slave status \G;




这里需要注意,需要Slave_IO_Running:YES与Slave_SQL_Running:YES必须为YES,其他的都是配置失败,需要检查配置的用户权限,还是不行的话需要从头一步一步的检查.

⑦.验证主从复制;

在主mysql服务器上使用root账号登录

创建一个数据库

create database master_one;


show databases;


在从mysql服务器上使用root账号登录

show databases;


配置成功的话可以看到从库中也有了数据库master_one了

使用刚创建的远程账号在插入一个数据库,也可以看到从库也对应添加了一个数据库.

目前配置到此结束.

推荐相关视频:

https://www.ixigua.com/i6497232485435310606/?utm_source=toutiao&utm_medium=feed_stream#mid=60959158180

推荐相关文章:

http://blog.csdn.net/zleiw/article/details/78243316
http://blog.csdn.net/hguisu/arti abde
cle/details/7325124/

http://blog.csdn.net/i_bruce/article/details/17055135

http://www.jb51.net/article/85218.htm

http://blog.csdn.net/linuxnews/article/details/51704964

http://blog.csdn.net/zbw18297786698/article/details/51078396

http://blog.csdn.net/qq_33517844/article/details/78737043
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 服务器