MySQL主从复制与读写分离

4 篇文章 0 订阅
4 篇文章 0 订阅

MySQL主从复制与读写分离

搭建MySQL主从复制
1)建立时间同步环境,在主节点上搭建时间同步服务器
①安装ntp
[root@centos01 ~]# yum -y install ntp
②配置NTP
[root@centos01 ~]# vim /etc/ntp.conf
在这里插入图片描述

③重启服务并设置为开机自启
[root@centos01 ~]# service ntpd restart
[root@centos01 ~]# systemctl restart ntpd
[root@centos01 ~]# systemctl enable ntpd
2)在从节点上进行时间同步
[root@centos02 ~]# ntpdate 192.168.100.10
[root@centos03 ~]# ntpdate 192.168.100.10
3)每台服务器关闭firewalld或指定端口,服务进行开放
4)安装MySQL数据库,在master,slave1,slave2上安装
①编译安装MySQL
[root@centos01 ~]# yum -y install ncurses-devel
[root@centos01 ~]# tar zxvf /mnt/cmake-2.8.6.tar.gz
[root@centos01 ~]# cd cmake-2.8.6/
[root@centos01 cmake-2.8.6]# ./configure
[root@centos01 cmake-2.8.6]# gmake && gmake install
[root@centos01 ~]# tar zxvf /mnt/mysql-5.5.22.tar.gz
[root@centos01 ~]# cd mysql-5.5.22/
[root@centos01mysql-5.5.22]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc
[root@centos01 mysql-5.5.22]# make && make install
②优化调整
[root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
[root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@centos01mysql-5.5.22]# chmod +x /etc/rc.d/init.d/mysqld
[root@centos01 mysql-5.5.22]# chkconfig --add mysqld
[root@centos01 mysql-5.5.22]# echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
[root@centos01 mysql-5.5.22]# . /etc/profile
③初始化数据库
[root@centos01 mysql-5.5.22]# groupadd mysql
[root@centos01 mysql-5.5.22]# useradd -M -s /sbin/nologin mysql -g mysql
[root@centos01 mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
[root@centos01 mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/
local/mysql --datadir=/usr/local/mysql/data --user=mysql
④启动服务
[root@centos01 ~]# systemctl start mysqld
[root@centos01 ~]# mysqladmin -u root password ‘pwd@123’ //为root设密码
5)配置MySQL Master主服务器
①在/etc/my.cnf中修改或增加下面内容
[root@centos01 ~]# vim /etc/my.cnf
50 log_bin = master-bin
57 server-id = 11
58 log-slave-updates = true
②重启MySQL服务
[root@centos01 ~]# systemctl restart mysqld
登录MySQL程序,给从服务以授权
[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> GRANT REPLICATION SLAVE ON . TO ‘myslave’@‘192.168.100.%’ IDENTIFIED BY ‘123456’;
mysql> FLUSH PRIVILEGES;
mysql> show master status;
在这里插入图片描述

6)配置从服务器
①在/etc/my.cnf中修改或增加下面内容
[root@centos02 ~]# vim /etc/my.cnf
57 server-id = 22
58 relay-log=relay-log-bin
59 relay-log-index=slave-relay-bin.index
②重启MySQL,配置同步
[root@centos02 ~]# systemctl restart mysqld
[root@centos02 ~]# mysql -uroot -ppwd@123
mysql>change master to master_host=‘192.168.100.10’,master_user=‘myslave’,master_password=‘123456’,master_log_file=‘master-bin.000001’,master_log_pos=339;
④启动同步
mysql> start slave;
⑤查看slave状态,确保以下两个值为yes
mysql> show slave status\G;
在这里插入图片描述

7)验证主从复制效果
①在主,从服务器上登录MySQL
②在主服务器上新建数据库db_test
mysql> create database db_test;
③在主,从上查看数据库,显示数据库相同,则主从复制成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搭建MySQL读写分离
1)在主机上Amoeba上安装Java环境
[root@centos04 ~]# cp /mnt/jdk-6u14-linux-x64.bin ./
[root@centos04 ~]# ./jdk-6u14-linux-x64.bin /根据提示按enter键完成
[root@centos04 ~]# mv jdk1.6.0_14/ /usr/local/jdk1.6
配置环境变量
[root@centos04 ~]# vim /etc/profile.d/java.sh
在这里插入图片描述

[root@centos04 ~]# source /etc/profile.d/java.sh
在这里插入图片描述

2)安装并配置Amoeba软件
[root@centos04 ~]# mkdir /usr/local/amoeba
[root@centos04 ~]# tar zxvf /mnt/amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
[root@centos04 ~]# chmod -R 755 /usr/local/amoeba/
[root@centos04 ~]# /usr/local/amoeba/bin/amoeba
amoeba start|stop //显示此内容说明Amoeba安装成功
3)配置Amoeba读写分离,两个slave读负载均衡
①master,slave1,slave2 中开放权限给amoeba访问
mysql> grant all on . to test@‘192.168.100.%’ identified by ‘pwd@123’;
②编辑amoeba.xml配置文件
[root@centos04 ~]# cd /usr/local/amoeba/
[root@centos04 amoeba]# vim conf/amoeba.xml
在这里插入图片描述
在这里插入图片描述

③编辑dbServers.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
④启动Amoeba软件,其默认端口为tcp 8066
[root@centos04 amoeba]# bin/amoeba start &
在这里插入图片描述

4)测试
①在client主机上
[root@centos05 ~]# yum -y install mysql
可以通过代理访问MySQL
[root@centos05 ~]# mysql -u amoeba -ppwd@123 -h 192.168.100.40 -P8066
MySQL [(none)]> create database accp;
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于搭建MySQL主从复制读写分离的步骤如下: 1. 配置主服务器: - 在主服务器的配置文件中开启二进制日志(binlog),可以通过在my.cnf文件中添加如下配置进行开启: ``` log-bin=mysql-bin server-id=1 ``` - 重启MySQL服务。 2. 配置从服务器: - 在从服务器的配置文件中添加如下配置: ``` server-id=2 relay-log=mysql-relay-bin read-only=1 ``` - 重启MySQL服务。 3. 创建复制用户: - 在主服务器上创建一个用于复制的用户,并赋予适当的权限: ``` CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES; ``` - 注意修改密码为实际使用的密码。 4. 备份主服务器数据并导入到从服务器: - 在主服务器上执行以下命令备份数据: ``` mysqldump -u root -p --all-databases --master-data > dump.sql ``` - 将备份文件导入到从服务器: ``` mysql -u root -p < dump.sql ``` 5. 配置主从复制: - 在从服务器上执行以下命令,指定主服务器的地址、复制用户和密码,并开始复制: ``` CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.XXXXXX', MASTER_LOG_POS=XXX; START SLAVE; ``` - 注意替换主服务器IP、复制用户和密码,以及MASTER_LOG_FILE和MASTER_LOG_POS参数。 6. 配置读写分离: - 在从服务器上创建一个用于读取数据的用户,并赋予适当的权限: ``` CREATE USER 'reader'@'%' IDENTIFIED BY 'password'; GRANT SELECT ON *.* TO 'reader'@'%'; FLUSH PRIVILEGES; ``` - 在应用程序中配置读写分离,将读请求发往从服务器,写请求发往主服务器。 完成上述步骤后,你将成功搭建MySQL主从复制读写分离。请记住,以上步骤仅供参考,具体操作可能因环境和需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值