实现数据库读写分离
克隆两台虚拟机,并且配置静态的ip地址
1.jt-msater
2.jt-slave
数据库备份的方式:
1.数据库备份的原因:
2.数据库备份的方式:
1.冷备份:在规定的时间,通过数据库工具定期的将数据库文件进行转储和导出
一般公式的数据库的备份是 一式三份
由于数据库文件较大,所以导出的时间较长,时间一长,就容易出问题,如果做数据库的导出操作时,还有大量的入库操作,则导出是存在风险的,定期导出数据库,会存在
数据丢失的风险
虽然冷备份存在诸多的问题,但是冷备份是恢复数据的最后手段
2.热备份:能够将数据库备份实现实时的数据同步,MySQLs数据库中提供了完善的数据库备份机制
组件介绍:
1.二进制文件:
作用:当主数据库发生"更新"时会将更新的数九块写入二进制日志文件中
2.I/O线程:
作用:实时监听二进制日志文件是否有更新操作,如果有更新操作则读取更新的内容, 内部有一个位置position (相当于指针),每次更新操作,位置都会增加.
比如position从100到120,那么就会读取这些更新的内容(通过内部的指针位置做到实时监听)
3.中继日志:
作用:保存主库的更新数据,是临时存放的地址
4.Sql线程:
作用:将中继日志的信息更新到数据库中
中继日志的必要性:备份时是通过网络操作,网络会有延迟,如果直接写入数据库,sql语句会不玩整,会出现问题.这样实现了数据库备份的异步操作,读跟写是互不影响(这样做更加的安全)
安装mysql
1.启动虚拟机:
首先检查本机ip地址: ifconfig
2.配置静态ip:(数据库连接时ip地址必须是要固定的)
3.使用xShell进行远程连接
4.安装MySQL:
4.1将MySQL的安装包上传到 /usr/local/src/mysql/ 目录下
4.2解压安装包: tar -xvf …
解压之后的文件:
4.3安装MySQL(安装是有顺序的rpm可以安装的程序(相当于windows下的.exe))
56-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
5启动MySQL:service mysql start [停止:service mysql stop , 重启:service mysql restart]
6.设定用户名和密码(学习阶段最好都使用root)
mysqladmin -u root password “root”
7.导入sql语句
7.l将sql文件上传到mysql目录下:
7.2登入mysql,将sql文件导入到数据库:
source jt.sql
7.3导入完成之后,就去查询数据库,看数据是否导入成功
8.开启mysql的权限:由于需要跨系统访问数据库:
grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
grant all on *.* to 'root'@'%' identified by 'root';
FLUSH PRIVILEGES; (刷新一下权限,让设置生效,不刷新的话,可能不会生效)
9.暴露3306端口:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
10.使用本机的SQLyog去访问linux操作系统上的数据库
注意点:
在linux系统上的mysql数据库只能开启一次,如果开启之后没有关闭,就重新再开启,那么数据库会出现问题,开启不了,并且也关闭不了.包报错:
解决的办法就是查看mysql的进程号,然后强制把mysql的进程号杀死.接着启动mysql基本就能行,注意root的进程号是不能杀的.如果还启动不了,就再查一次进程,
然后再杀一次进程
查看进程: ps -ef | grep mysql
强制杀死进程: kill -9 6622 (6622是进程号)
开启二进制日志文件(做主从复制时需要mysql的二进制日志)
默认的条件下二进制日志文件是关闭的,如果需要主从的同步需要手动开启
步骤:
1.编辑mysql的系统配置文件 my.cnf/my.ini(指定mysql端口/数据库的位置)
2.检测二进制文件是否启动
配置my.cnf文件
vim /etc/my.cnf
将mysql服务项重启
检测二进制日志文件是否启动
cd /var/lib/mysql/