这里我们采用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即可。
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