内网安装mysql主从服务,mysql版本5.6.38-winx64

最近因项目需要,用户并发要求2000,而且访问频度比较大的页面,可能会涉及到读写操作,为了提高数据库的读数据的效率,于是考虑采取读数据库写分离的配置方式,来暂时解决这个问题。一台只读,一台只写。可能还会有其他更好的解决方案,但是为了敦促自己再增加一点数据库知识,于是就有如下方案了。因为项目组之前一直使用mysql数据库的,故继续研究下去了。如下配置是本人自己编辑的,如有雷同,纯属巧合,侵犯到您的权益还请联系我(qq:334170431)我进行修改。

服务器A:10.10.21.xx,服务器B:10.10.130.xx

Mysql版本:5.6.38-winx64

1、安装master

1.1、创建配置文件my.ini

解压后,找到my-default.ini文件,拷贝并粘贴在同级目录下面,重命名为my.ini

编辑内容如下:其中黄色部分是配置为master服务器

[client]

# 设置mysql客户端默认字符集 

default-character-set=utf8 

[mysql] 

# 设置mysql客户端默认字符集 

default-character-set=utf8 

[mysqld] 

#为主服务器的ID

server-id=1

#二进制变更日值

log-bin=master-bin

log-bin-index=master-bin.index

# 设置3306端口 

port =3306  

# 设置mysql的安装目录 

#basedir=E:\mysql-5.6.38-winx64\MySQL

# 设置mysql数据库的数据的存放目录 

#datadir=E:\mysql-5.6.38-winx64\MySQL\data 

# 允许最大连接数 

max_connections=500 

# 服务端使用的字符集默认为8比特编码的latin1字符集 

character-set-server=utf8 

# 创建新表时将使用的默认存储引擎 

default-storage-engine=INNODB  

# 跳过密码验证 

#skip-grant-tables 

explicit_defaults_for_timestamp=1

#当secure_file_priv的值没有具体值时,表示不对mysqld的导入|导出做限制

secure_file_priv=

 

1.2、设置root密码,方法略,不会的去问度娘
1.3、创建slave可以访问master的用户:

 

CREATEUSER 'backup'@'10.10.130.xx' IDENTIFIED BY 'backup';

 

GRANT SUPER, REPLICATION SLAVE ON *.* TO 'backup'@'10.10.130.xx';

    

    注:权限不对的时候会执行2.3会报错

 

 1.4、使用showmaster status;命令查看状态:

    截图不能上传,比较尴尬,使用文字替换一下:

file                                       position

        master-bin.000001     120

 

2、安装slave

2.1、创建配置文件my.ini

安装方法同1.1,只是配置文件内容稍微改变一下:

[client]

# 设置mysql客户端默认字符集 

default-character-set=utf8 

[mysql] 

# 设置mysql客户端默认字符集 

default-character-set=utf8 

[mysqld] 

#为从服务器的ID

server_id         = 2

#二进制变更日值

log_bin           = slave-bin

#中继日志

relay_log         = slave-relay-bin

relay-log-index=slave-relay-bin.index

#表示slave将复制事件写进自己的二进制日志

log_slave_updates = 1

#只读

read_only         = 1

 

# 设置3306端口 

port =3306  

# 设置mysql的安装目录 

#basedir=E:\mysql-5.6.38-winx64\MySQL

# 设置mysql数据库的数据的存放目录 

#datadir=E:\mysql-5.6.38-winx64\MySQL\data 

# 允许最大连接数 

max_connections=800 

# 服务端使用的字符集默认为8比特编码的latin1字符集 

character-set-server=utf8 

# 创建新表时将使用的默认存储引擎 

default-storage-engine=INNODB  

# 跳过密码验证 

skip-grant-tables 

explicit_defaults_for_timestamp=1

#当secure_file_priv的值没有具体值时,表示不对mysqld的导入|导出做限制

secure_file_priv=

 

2.2、设置root密码,方法略,不会的去问度娘
2.3、启动slave后,设置查询master,即同步日志:

changemaster to master_host='10.10.21.xx',

master_port=3306,

master_user='backup',

master_password='backup',

master_log_file='master-bin.000001',

master_log_pos=0;

标黄部分的值取1.4查询结果(每次手动同步也是如此)

 

 

2.4、使用show slave status;查看同步状态:
slave-io-running slave-sql-running
yes yes


     两列值都是Yes的时候表示同步成功。此时可以在master里面创建数据库就会同步的slave里面。

 

注:如果是直接拷贝master数据库文件安装slave,导致data下面的auto.cnf文件内容相同,同步失败,报如下错误:

show slave status;

last_io_error

fatal error: the slave i/o thread stops because master and slave have equal mysql server uuids; these uuids must be different for replication to work.


解决方法:1、删除auto.cnf,重启数据库,会再次生成新的文件

2、手动修改里面的值也可以。

 

3、手动同步日志步骤

3.1、重复1.4操作

3.2、执行:stopslave ;

3.3、重复2.3操作(注意重新取值)

3.4、执行:startslave ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值