环境
主库和从库上有可运行的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中获取二进制文件和位置点的时候,注意每次登录数据库都是有变化的
注意关闭服务器的防火墙