数据库写读分离(数据库主备方式)(一)

这里我们采用mysql进行数据库主备方式先进行数据库的主备分离。

一、删除服务器上以前老版本的数据库

删除步骤如下:

1、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql

$  rpm -qa|grep -i mysql

2、停止mysql服务、删除之前安装的mysql

$ rpm -e –nodeps 包名

如果提示依赖包错误,则使用以下命令尝试

$ rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:

$ rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

$ find / -name mysql

删除对应的mysql目录

$ rm -rf /var/lib/mysql

注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

rm -rf /etc/my.cnf

4、再次查找机器是否安装mysql

rpm -qa|grep -i mysql

总结

无结果,说明已经卸载彻底,接下来直接安装mysql即可。

二、进行数据库的mysql的安装

1、采用以二进制tar.gz文件来进行安装,安装包采用 mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz

然后将其解压,并重命名为mysql,使用mv命令将其移到/usr/local目录下:

 $ mv  (对应你的目录)/mysql  /usr/local

 将上面的做好了后,我们现在就可以进入mysql的安装了,根据INSTALL-BINARY文件的描述,可知mysql默认的安装目录就是在/usr/local/mysql,这就是上面为什么我们要将其移动在/uer/local下的原因;如果在你的机器上以前安装有老板本的mysql,需要先将它的文件删除,同时注意删除老板本的etc/my.cnf文件和/etc/mysql目录,这两个文件控制的是mysql的一些配置属性。

2、创建的一个名为mysql的用户组和用户,来承载mysql数据库的运行,使用如下命令:

创建用户组:$ addgroup mysql 

在创建的用户组中创建一个用户:$  adduser -r -g mysql mysql 

如果你登入本机的用户是root用户,则直接的使用 addgroup 和 adduser 命令。

接着进入mysql目录,修改mysql目录的拥有者,为mysql用户:

进入目录:$ cd /usr/local/mysql

修改目录的拥有者:$ chown -R mysql .     

                                $ chgrp -R mysql .

这里的点“.”代表的就是当前目录,选项-R表示递归当前目录及其子目录。

现在真正的进入主题,安装mysql,执行命令:

                                $ scripts/mysql_install_db --user=mysql

其实,这一步正真的目地就是生成一些mysql数据库运行的系统数据库。

注意:会提示如下错误的信息:

./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

这说明还要安装一个libaio的依赖库,执行如下命令:

                                $ yum install libaio

安装完libaio后,继续执行“$  scripts/mysql_install_db --user=mysql”命令来进行安装。

执行完上面的命令后,其实就已经完成了mysql的安装,但为了数据库的安全,可以将mysql目录的拥有者改为root用户,并将生成的系统依赖数据赋给mysql用户,执行如下命令:

$  chown -R root .

$  chown -R mysql data

安装好mysql后,就可以试着启动它,使用如下命令:

$  ./support-files/mysql.server start 

同样重启和停止,只需要将上面命令的start改为restart或stop。

启动完mysql后,我们接着可以测试一下,使用“./bin/mysql”命令来进入mysql数据库的控制台,执行SQL命令。

为了数据库的安全我们需要为数据库访问设置密码,可以执行如下命令,将mysql的配置文件安装到/etc目录下:

$  cp support-files/my-medium.cnf    /etc/my.cnf

然后更改/etc/my.cnf文件,在[client]段下,取消password注释,并将your_password改为你的密码。

这样设置好后,进入mysql的控制台,则需要使用如下命令:

$   ./bin/mysql -uroot -p

三、进行数据库主备配置

1、配置Master主服务器

(1)在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

//repl用户必须具有REPLICATION SLAVE权限,密码为mysql。

mysql>  create user repl; //创建新用户

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

说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。

(2)找到MySQL安装文件夹修改my.conf 文件。我们只要启动二进制日志log-bin就ok。

 server-id=1   //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
 log-bin=master-bin
 log-bin-index=master-bin.index

3、配置Slave从服务器

(1)找到MySQL安装文件夹修改my.conf文件,在[mysqld]下面增加下面几行代码

[mysqld]
 server-id=2
 relay-log-index=slave-relay-bin.index
 relay-log=slave-relay-bin 

4、重启主备MySQL服务

注意:

log-bin         #开启二进制日志功能,binlog数据位置
log-bin-index 
relay-log      #relay-log日志记录的是从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,

         #然后SQL线程会读取relay-log日志的内容并应用到从服务器
relay-log-index      #binlog传到备机被写道relaylog里,备机的slave sql线程从relaylog里读取然后应用到本地。

其他的参数可参考 https://www.cnblogs.com/langdashu/p/5889352.html

三、进行数据库数据同步

(1)、连接Master

change master to master_host='192.168.0.104', //Master 服务器Ip
master_port=3306,
master_user='repl',
master_password='mysql', 
master_log_file='master-bin.000001',//Master服务器产生的日志
master_log_pos=0;

(2)启动Slave

start slave;

OK所有配置都完成了,这时候大家可以在Master Mysql 中进行测试了,因为我们监视的时Master mysql  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。

对于binlog的详情可参照

https://www.cnblogs.com/martinzhang/p/3454358.html

 

猜你喜欢

转载自blog.csdn.net/liangkun_java/article/details/81939771
今日推荐