千家信息网

mysql主从同步读写分离

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,https://pan.baidu.com/s/1tm_FQ4C8heQqzx01URr85A //软件连接百度网盘三台mysql数据库:主数据库服务器:192.168.80.100
千家信息网最后更新 2026年11月03日mysql主从同步读写分离

https://pan.baidu.com/s/1tm_FQ4C8heQqzx01URr85A //软件连接百度网盘

三台mysql数据库:主数据库服务器:192.168.80.100                                  从数据库服务器1:192.168.80.101                                  从数据库服务器2:192.168.80.102一台amoeba调度器:192.168.80.103一台mariadb客户端:    192.168.80.104

注:五台虚拟机第一步都写以下两行

systemctl stop firewalld      //关闭防火墙setenforce 0         //关闭监控

配置MySQL主从环境准备

配置NTP服务器-----时间同步[root@NGINX ~]# yum install -y  ntp    //安装时间同步程序[root@NGINX ~]# service ntpd start#注:如果跑错就 service ntpd stop[root@NGINX ~]# ntpdate -u cn.pool.ntp.org //同步网络时间

[root@NGINX ~]# vi /etc/ntp.conf   //配置时间同步在合适位置新增以下三行:restrict 192.168.80.0 mask 255.255.255.0 nomodifyserver 127.127.1.0fudge 127.127.1.0 stratum 8在从服务器上:[root@localhost ~]# yum install -y ntp[root@localhost ~]# ntpdate 192.168.80.100

[root@localhost ~]# echo '*/30 * * * * /usr/sbin/ntpdate 192.168.80.100' >> /var/spool/cron/root    //设置计划任务,每隔30分钟同步一次[root@localhost ~]# crontab -l
然后配置mysql服务器主从复制在主mysql服务器上:192.168.80.100[root@NGINX ~]# vi /etc/my.cnf在socket下面插入:server-id=11log_bin=master_binlog_slave_updates=true

[root@NGINX ~]# service mysqld restart 如果没有设置root密码使用下面一行代码mysqladmin -u root -p password "abc123" [root@NGINX ~]# mysql -u root -p    //进入数据库mysql> GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.80.%' IDENTIFIED BY '123456';//为所有从服务器授权所有数据库mysql> FLUSH PRIVILEGES;  //刷新权限mysql> show master status \G

在从服务器1上设置:192.168.80.101

[root@localhost ~]# vi /etc/my.cnf修改并新增以下内容:server-id = 22relay_log=relay-log-binrelay_log_index=slave-relay-bin.index

[root@localhost ~]# systemctl restart mysqld 如果没有设置root密码使用下面一行代码mysqladmin -u root -p password "abc123" [root@localhost ~]# mysql -u root -pmysql> change master to master_host='192.168.80.100',master_user='myslave',master_password='123456',master_log_file='master_bin.000007',master_log_pos=154;mysql> start slave;mysql> show slave status \G

在从服务器2上设置:

[root@test ~]# vi /etc/my.cnf修改并新增以下内容:server-id = 33relay_log=relay-log-binrelay_log_index=slave-relay-bin.index[root@test ~]# service mysqld restart 如果没有设置root密码使用下面一行代码mysqladmin -u root -p password "abc123" [root@test ~]# mysql -u root -pmysql> change master to master_host='192.168.80.100',master_user='myslave',master_password='123456',master_log_file='master_bin.000007',master_log_pos=154;mysql> start slave;mysql> show slave status \G

测试,在主服务器上创建一个空库,看一下从服务器上有木有

在主服务上mysql> create database ab;

在从服务器1上:mysql> show databases;

在服务器2上:mysql> show databases;

在前端服务器上:192.168.80.103

[root@amoeba ~]# yum install -y ntpdate [root@amoeba ~]# ntpdate 192.168.80.100

[root@amoeba ~]# echo '*/30 * * * * /usr/sbin/ntpdate 192.168.80.100' >> /var/spool/cron/root[root@amoeba ~]# crontab -l
[root@amoeba ~]# tar xf jdk-8u144-linux-x64.tar.gz -C /opt/
[root@amoeba ~]# cd /opt/
[root@amoeba opt]# cp -rv jdk1.8.0_144/ /usr/local/java
[root@amoeba opt]# vi /etc/profileexport JAVA_HOME=/usr/local/javaexport JRE_HOME=/usr/local/java/jreexport PATH=$PATH:/usr/local/java/binexport CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib

[root@amoeba opt]# source /etc/profile
[root@amoeba opt]# java -version

现在搭建好了Java环境了

yum -y install zip unzip
[root@amoeba ~]# unzip amoeba-mysql-3.0.5-RC-distribution.zip -d /opt/
[root@amoeba ~]# cd /opt/
[root@amoeba opt]# mv amoeba-mysql-3.0.5-RC/ /usr/local/amoeba
[root@amoeba opt]# chmod -R 755 /usr/local/amoeba/
[root@amoeba opt]# vi /usr/local/amoeba/jvm.properties新增:JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k"

[root@amoeba opt]# vi /etc/init.d/amoeba   //编辑系统服务脚本#!/bin/bash#chkconfig: 35 62 62#export JAVA_HOME=/usr/local/javaexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHNAME=AmoebaAMOEBA_BIN=/usr/local/amoeba/bin/launcherSHUTDOWN_BIN=/usr/local/amoeba/bin/shutdownPIDFILE=/usr/local/amoeba/Amoeba-MySQL.pidSCRIPTNAME=/etc/init.d/amoebacase "$1" instart)echo -n "Starting $NAME... "$AMOEBA_BINecho " done";;stop)echo -n "Stoping $NAME... "$SHUTDOWN_BINecho " done";;restart)$SHUTDOWN_BINsleep 1$AMOEBA_BIN;;*)echo "Usage: $SCRIPTNAME {start|stop|restart}"exit 1;;esac
[root@amoeba opt]# chmod +x /etc/init.d/amoeba   //给予执行权限
[root@amoeba opt]# chkconfig --add amoeba    //添加到系统管理中
[root@amoeba opt]# service amoeba start   //开启amoeba服务


显示这个就等于到这步没有问题

--------配置读写分离-------------

----在三台mysql数据库中为amoeba授权-------

mysql> GRANT ALL  ON *.* TO test@'192.168.80.%' IDENTIFIED BY '123123';mysql> FLUSH PRIVILEGES;

--------在amoeba前端服务器上----[root@amoeba amoeba]# cd /usr/local/amoeba[root@amoeba amoeba]# vi conf/amoeba.xml
-----设置客户端连接amoeba前端服务器时使用的用户名和密码----28行 amoeba 123456

----同时把默认的server1改成master,把默认的servers改成 slaves-----83行 slaves master slaves

 cd conf/[root@amoeba conf]# vi dbServers.xml   26行 test 123123   //指定数据库的登录用户名和密码

修改以下内容192.168.80.100192.168.80.101192.168.80.102/property>  slave1,slave2 

[root@amoeba amoeba]# service amoeba restart[root@amoeba amoeba]# netstat -anpt | grep java

在客户端服务器上:192.168.80.104

[root@MYSQL ~]# yum install -y mysql
[root@MYSQL ~]# mysql -u amoeba -p123456 -h 192.168.80.103 -P8066

在客户端上使用命令在test创建一个表:
MySQL [(none)]> use test;
MySQL [test]> create table zhang (id int(10),name varchar(10),address varchar(20));
MySQL [test]> show tables;
80.100


80.104

服务 服务器 数据 数据库 同步 密码 配置 客户 客户端 时间 一行 代码 内容 前端 主从 权限 环境 用户 用户名 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 互联网佳科技有限公司 北京互联网科技有限公司 青岛互联网科技公司 睿民互联网科技 上海万想互联网科技 佰商互联网科技有限公司 多迪互联网科技有限公司 新华互联网科技校企合作 华中科技有哪些互联网大佬 济南和联互联网科技有限公司 湖南诚度互联网科技有限公司 湖北码尼互联网科技有限公司电话 互联网时代的科技公司 互联网金融科技元年 黑科技 体验场景 互联网大会 绵阳真晨互联网科技有限公司 青岛易易互联网科技 互联网企业和网络科技有限公司 株洲百竞科技的互联网营销顾问 中国互联网科技工作委员会毛军 百单互联网科技有限公司 兼蜜互联网科技 猫创互联网科技 亿人帮互联网科技 中国的互联网科技企业的崛起 深圳市优智互联网科技有限公司 洛阳共同富裕互联网科技有限公司 长沙渺峰互联网科技有限公司 马化腾互联网科技教学
0