mysql集群 mysql客户端 配置_MySQL集群配置

MySQL数据同步

[参考链接](https://www.cnblogs.com/phpstudy2015-6/p/6687480.html#_label0)

[参考链接](https://www.cnblogs.com/phpstudy2015-6/p/6687480.html#_label13)准备3台服务器

192.168.0.163(MASTER)

192.168.0.167(SLAVE)

192.168.0.173(SLAVE)获取源码资源包(3台服务器均执行)

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm安装源码资源包(3台服务器均执行)

rpm -ivh mysql57-community-release-el7-10.noarch.rpm通过资源包安装mysql(3台服务器均执行)

yum install mysql-server -y

echo deadline > /sys/block/sda/queue/scheduler修改my.conf(3台服务器均执行)

vim /etc/my.cnf

[client]

default-character-set = utf8mb4

[mysqld]

port = 3306

symbolic-links=0

slow_query_log = 1

long_query_time = 1

explicit_defaults_for_timestamp = 1

datadir = /data/mysql

secure_file_priv = /tmp

default_storage_engine = InnoDB

socket = /var/lib/mysql/mysql.sock

log-error = /var/lib/mysql/mysql.log

slow_query_log_file = /var/lib/mysql/mysql-slow.log

ESC

:wq

# MASTER服务器[mysqld]下加上

server-id = 1

binlog-format = Row

log-bin = /data/mysql/mysql-bin.log

# SLAVE服务器[mysqld]下加上

# 192.168.0.167(SLAVE)

server-id = 2

relay-log=bogon-relay-bin

# 192.168.0.173(SLAVE)

server-id = 3

relay-log=localhost-relay-bin

# 这里一定要注意

relay-log = [服务器名]-relay-bin添加mysql用户(3台服务器均执行)

user add -s /sbin/nologin -M mysql

创建数据文件目录、所属组、用户改为mysql(3台服务器均执行)

mkdir /data/

mkdir /data/mysql/

mkdir /var/run/mysqld/

chown -R mysql:mysql /data/mysql/

chown -R mysql:mysql /var/lib/mysql/

chown -R mysql:mysql /var/run/mysqld/

chown -R mysql:mysql /var/lib/mysql-files/

chown -R mysql:mysql /var/lib/mysql-keyring/启动数据库,生成socket文件(3台服务器均执行)

systemctl enable mysqld

systemctl start mysqld

# 因为配置文件中指定了

log-error = /var/lib/mysql/mysql.log

# 所以初始密码在如下文件中

/var/lib/mysql/mysql.log

cat /var/lib/mysql/mysql.log|grep password

# 结果显示

A temporary password is generated for root@localhost: *********修改数据库初始密码(3台服务器均执行)

mysql -u root -p

# 输入原始密码

*********

# 设置允许使用弱密码

SET GLOBAL validate_password_policy=0;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root12345';

QUIT;初始化数据库(3台服务器均执行)

# 如果是数据库【安装】则只执行下面这步(除了密码一律选择Y)

mysql_secure_installation

# 如果是数据库【升级】则只执行下面这步(*********表示数据库之前的密码)

mysql_upgrade -u root -p

*********配置防火墙(3台服务器均执行)

systemctl enable firewalld

systemctl start  firewalld

firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload

接下来就是数据同步相关的处理创建从服务器(SLAVE服务器、读服务器)用户

# 192.168.0.167(SLAVE)

# 192.168.0.173(SLAVE)

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'192.168.0.%' IDENTIFIED BY 'GENGzhihuan123' WITH GRANT OPTION;

FLUSH PRIVILEGES;创建主服务器允许哪些从服务器访问

# 192.168.0.163(MASTER)

GRANT REPLICATION SLAVE ON *.* TO 'mysql'@'192.168.0.%' IDENTIFIED BY 'GENGzhihuan123';

FLUSH PRIVILEGES;查看二进制文件名与位置

# 192.168.0.163(MASTER)

SHOW MASTER STATUS;从服务器中指定二进制文件路径

# 192.168.0.167(SLAVE)

# 192.168.0.173(SLAVE)

CHANGE MASTER TO

MASTER_HOST='192.168.0.163',

MASTER_USER='mysql',

MASTER_PASSWORD='GENGzhihuan123',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=154;

# 这里注意

# MASTER_HOST:      主服务器IP

# MASTER_USER:      主服务器允许从服务器访问的用户

# MASTER_PASSWORD:  主服务器允许从服务器访问的密码

# MASTER_LOG_FILE:  主服务器执行SHOW MASTER STATUS;后的File字段的值

# MASTER_LOG_POS:  主服务器执行SHOW MASTER STATUS;后的Position字段的值

SHOW SLAVE STATUS\G

# 如果有如下状态

# Slave_IO_Running:  Yes

# Slave_SQL_Running: Yes

# 表示配置成功!!!

在主服务器中创建数据库,查看从服务器是否同步产生了相同的数据库

在主服务器中创建数据表,查看从服务器是否同步产生了相同的数据表

在主服务器表中创建数据,查看从服务器表是否同步产生了相同的数据

如果以上3个步骤正常,则主从服务器搭建成功为了能够让所有服务器分担数据查询的压力,我们这样做

# 以下方案可以不安装mysql-proxy、lua实现查询压力的分担,对于

# 读取要求高的网站使用较合理,但如果数据库设计中如果索引比较

# 多、写入操作频繁,则要使用读写分离方案

# 192.168.0.163(MASTER)

GRANT ALL PRIVILEGES ON *.* TO 'writer'@'192.168.0.%' IDENTIFIED BY 'GENGzhihuan123' WITH GRANT OPTION;

FLUSH PRIVILEGES;

# 192.168.0.167(SLAVE)

# 192.168.0.173(SLAVE)

GRANT SELECT ON *.* TO 'reader'@'192.168.0.%' IDENTIFIED BY 'GENGzhihuan123' WITH GRANT OPTION;

FLUSH PRIVILEGES;

为了实现读写分离方案,这里要涉及两个工具mysql-proxy、lua

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值