数据库--主从配置

环境

主库和从库上有可运行的mysql数据库,如果没有请安装

安装mysql数据库

从mysql官网下载需要的版本 (说明下:下面的网址是官网,不能直接get,需要看下服务器的版本和操作系统位数。找到对应的版本链接填进去。)

wget http://dev.mysql.com/downloads/mysql/5.6.html

进入系统后,检测是否安装mysql.

rpm -qa | grep -i mysql

若已安装,那么删除它(这里填的是qa出来的东西):

rpm -ev MySQL-server-5.0.22-0.i386

rpm -ev MySQL-client-5.0.22-0.i386

安装mysql(这里的rpm填tar包里面解压出来的东西)

rpm -ivh /home/MySQL-server-5.6.30-1.el6.x86_64.rpm

rpm -ivh /home/MySQL-client-5.6.30-1.el6.x86_64.rpm

安装版本兼容用的lib

rpm -ivh /home/MySQL-shared-compat-5.6.30-1.el6.x86_64.rpm

处理配置文件

cp  /usr/share/mysql/my-medium.cnf  /etc/my.cnf

写入配置

vim etc/my.cnf
[mysqld]

datadir          = /var/lib/mysql   #数据仓库目录

socket          = /var/lib/mysql/mysql.sock #连接文件

character_set_server=utf8   #服务端字符集

collation-server=utf8_general_ci #连接服务字符集

lower_case_table_names=1    #表名不区分大小写

character_set_client=utf8   #客户端字符集

max_connections=1000    #最大连接数

innodb_file_per_table=1 #开启innodb独立的表空间文件

数据库的初始化

mysql_install_db

启动数据库

/etc/init.d/mysql start

登录数据

mysql -uroot -p

备份恢复

安装备份工具Percona Xtrabackup

官网地址

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/percona-xtrabackup-2.3.2-1.el6.x86_64.rpm

安装依赖

yum -y install epel-release

安装备份工具(如果是备份还原不再同一台服务器,都需要安装)

yum -y localinstall percona-xtrabackup-2.3.2-1.el6.x86_64.rpm

备份

备份主库中所有库(如果是做主从,建议在主库执行flush logs;)

innobackupex --defaults-file=/etc/my.cnf --userroot --password sxw@12345 /home/xtrabackup/

指定库备份(库名中间空格分隔)

innobackupex --defaults-file=/etc/my.cnf --userroot --password sxw@12345 -databases=sxwinnodb sxwinnodb_2015 /home/xtrabackup/

恢复

从主库备份到从库

scp -r /home/xtrabackup root@192.168.1.17 : /home/xtrabackup

停mysql

/etc/init.d/mysqld stop

数据目录备份

mv /var/lib/mysql /var/lib/mysql_bak

重建数据目录

mkdir /var/lib/mysql

–apply-log回滚未提交的事务及同步已经提交的事务至数据文件

innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log /home/xtrabackup/2016-05-18_17-16-31/

–copy-back 选项的命令从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置

innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /home/xtrabackup/2016-05-18_17-16-31/

改变文件所属

chown -R mysql.mysql /var/lib/mysql

启动mysql服务

/etc/init.d/mysqld start
  • 注意:如果还想用原库的用户,需要把mysql/mysql这个库从bak拷贝回去

配置主从

主服务器master配置

vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql ##数据仓库目录
server-id=1 ##serverid随便命名,必须是数字。在slave配置时候会用到。
log-bin=mysql-bin ##binlog开启的配置,主从是基于binlog去做的,必须配置

从服务器slave配置

[mysqld]
server-id=2
datadir=/var/lib/mysql
log-bin=mysql-bin ##如果是想做主主结构,那么也必须配置binlog

主库:创建主从同步帐号(在登录mysql的情况下)

mysql>
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'slave';
UPDATE mysql.user SET Password=PASSWORD('slave') where USER='slave';
FLUSH PRIVILEGES;

从库:配置主从信息

在主库获取master_log_file和master_log_pos

mysql> show master status\G 

登录从库进行配置

master_log_file 这个参数是主库binlog的当前文件。 
master_log_pos 这个是binlog的当前点。 
这两个参数,可以通过从库里面获取。

mysql> change master to master_user='slave',master_password='slave',master_host='192.168.1.16',master_port=3306,master_log_file='logbin.000040',master_log_pos=107;

从库:开始主从同步

mysql>start slave;
show slave status\G;

注意

在show master status\G中获取二进制文件和位置点的时候,注意每次登录数据库都是有变化的
注意关闭服务器的防火墙
posted on 2017-06-08 16:30  nikeodong  阅读(378)  评论(2)    收藏  举报