mysql主从复制脱坑

来源:互联网 发布:c语言大小写转换a变a 编辑:程序博客网 时间:2024/05/29 02:41

我也是第一次弄这个mysql主从复制,爬坑总算爬出来了,分享一下爬坑心得;
准备的相关软件及系统版本:
mysql5.6解压版
两台服务器windosserver2012 64.

下载mysql就不多说了.
首先先在两台服务器上分别安装配置mysql,前面一部分安装是相同的,因为要实现mysql的主从复制,在后期配置的时候会有区别,下面我们在相同的服务器上进行相同的安装.
1.在两台服务器上安装mysql
①.配置环境变量:在系统环境变量的path中加入磁盘目录\mysql\bin的文件目录名
②.在你指定的主mysql目录下修改my.ini配置文件,我主mysql配置的如下

[client]port = 3306default-character-set = utf8[mysqld]basedir = C:/xuguoxi/mysqldatadir = C:/xuguoxi/mysql/dataport = 3306character_set_server=utf8server_id = 2log-bin = mysql-binsql_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 = 3306default-character-set = utf8[mysqld]basedir = C:/xuguoxi/mysqldatadir = C:/xuguoxi/mysql/datacharacter_set_server=utf8port = 3306server_id = 3sql_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/article/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

原创粉丝点击