1.在linux上安装两个linux操作系统(具体步骤不讲)
注意的是(需要设置静态ip)数据库的ip地址一般不要变
一台虚拟机叫做my-master(用来做主数据库),一台虚拟机叫做my-slave-1(用来做从数据库)
2.在master-master上安装mysql数据库
2.1在/usr/local/src下新建目录:mysql
2.2将linux下的mysql安装包上传到新建的mysql目录下:并且解压这个安装包:
2.21解压后的文件:
2.开始安装mysql数据库,注意安装的顺序(需要安装4个):
debuginfo -> shared -> client -> server (安装顺序弄错了,是会出现问题的)
1 - > rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
2 - > rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
3 - > rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
4 - > rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
3.安装之后,数据库的设置
3.1开启mysql服务:
service mysql start
3.2为mysql设置用户名和密码:
mysqladmin -u root password “root”
3.3进入数据库,为root用户开发权限:
grant all on *.* to "root"@"%" identified by "root";
FLUSH PRIVILEGES; (让权限生效,否则可能不会起作用或者重启mysql)
3.4退出数据库,暴露连接数据库的端口:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
或者直接关闭防火墙(不采取) service iptables stop
4.复制sql文件到mysql目录下,然后,登入mysql,将sql文件导入数据库
source jt.sql
现在可以拍一份快照了
如果需要实现主从备份的话,就需要使用到二进制文件
1.在主主数据库中(my-master:)
编辑mysql的配置文件,vim /etc/my.cnf,
增加两行代码:
server-id=1
log-bin=mysql-bin
2.重启数据库
service mysql restart
3.在重数据库中(my-slave-1)
编辑mysql的配置文件,vim /etc/my.cng
增加两行代码:
server-id=2 (注意跟有联系的数据库相同)
log-bin=mysql-bin
在linux系统上mysql的配置上就配置好了,接下来,使用客户端连接着两台虚拟机:
接下来就要进行主从挂载了:
1.在主数据库中(my-master):
SHOW MASTER STATUS; (查看状态)
2.在从数据库(my-slave-01)中进行挂载:
CHANGE MASTER TO MASTER_HOST="192.168.153.138",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120; (这个位置的数值要根据主数据中的Position来决定)
3.从数据启动挂载:
START SLAVE;
4.在从数据库中查看是否挂载成功:
SHOW SLAVE STATUS;
如果查询出的这一行数据没有错误信息,就代表挂载成功了
5.测试:在主数据库中创建测试数据库和表,刷新,从数据库实现了备份的功能
1.复制一台虚拟机用来安装Aoebda:
同样是安装在 /usr/local/src目录下 .上传文件在这个目录,并且还需要安装jdk
2.安装jdk,并且配置环境变量,解压amoeba-mysql-3.0.4-BETA的安装包
amoeba的功能是实现了代理,所有的访问都先进入amoeba这台服务器,有这台服务器来分发请求,实现数据的读写分离
3.修改amoeba的配置文件
使用xShell修改配置文件:
3.1修改dbServer.xml:
修改连接数据库的用户名和密码(所以两台数据库的密码用户名要一致,不然可能还需要另外的配置)
配置主从数据库的ip地址和名字
配置multiPool,读的策略
每3次读数据库的访问中,有一次会访问主数据库(读数据库更频繁,这样配置可以减小从数据库的压力)
3.2修改amoeba.xml
设置连接的用户名和密码:可以使用SQLyog登录
配置读写策略:
编辑完之后上传会文件原来的位置,对原来的文件实现覆盖
4.修改jvm.properties:
将两个参数调大
测试:使用SQLyod登录amoeba,虽然部署了amoeba的虚拟机上没有安装数据库,但是仍然可以连接,因为访问的还主数据库的数据,如果在amoeba上面尽心操作数据,主数据库的数据会跟着变化,从数据库的数据也会跟着变化
现在已经实现了数据库的读写分离,只是感觉不到
将本地项目连接的数据库换成amoeba这台虚拟机的ip,并且端口要变成8066.会发现能正常连接数据库
还可以将项目打包,仍在linux上安装的tomcats里面,使用nginx实现负载均衡