MySQL备份及主从同步

安装mysql数据库

1、从mysql官网下载需要的版本 (说明下:下面的网址是官网,不能直接get,需要看下服务器的版本和操作系统位数。找到对应的版本链接填进去。)
#wget http://dev.mysql.com/downloads/mysql/5.6.html
2、进入系统后,检测是否安装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
3、安装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
4、启动数据库
#/etc/init.d/mysql start
5、登录数据
#mysql -uroot -p

备份恢复

安装Percona Xtrabackup备份工具

1、在官网上获取需要的版本(5.5以上mysql可以使用最新版,5.0的mysql只用用2.0的工具)

#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

2、安装依赖

#yum -y install epel-release

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

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

1、全库备份(如果是做主从,建议在主库执行flush logs;)

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

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

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

1、拷贝备份到从库

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

2、停mysql

#/etc/init.d/mysqld stop

3、数据目录备份

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

4、重建数据目录

#mkdir /var/lib/mysql

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

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

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

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

7、改变文件所属

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

8、启动mysql服务

#/etc/init.d/mysqld start

PS:如果还想用原库的用户,需要把mysql/mysql这个库从bak拷贝回去

配置主从(修改数据库配置文件,需要重启数据库才能生效。)

1、master配置

#vim /etc/my.cnf

[mysqld]

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

server-id=1   ##serverid随便命名,必须是数字。在slave配置时候会用到。

log-bin=mysql-bin    ##binlog开启的配置,主从是基于binlog去做的,必须配置

2、Slave配置

[mysqld]

server-id=2

datadir=/var/lib/mysql

log-bin=mysql-bin ##如果是想做主主结构,那么也必须配置binlog

3、==主库==:创建主从同步帐号

#GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'slave';

#UPDATE mysql.user SET Password=PASSWORD('slave') where USER='slave';

#FLUSH PRIVILEGES;

4、==主库库==:查找binlog相关

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

#show master status\G 

5、==从库==:配置主从信息

#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;

6、==从库==:开始主从同步

#start slave;

#show slave status\G;

常见问题

备份
Can't connect to local MySQL server through socket '/tmp/mysql.sock'

解决办法:http://www.cnblogs.com/kerrycode/p/5309083.html
http://www.cnblogs.com/eoiioe/archive/2008/12/28/1363947.html
innobackupex: Error while setting value '/tmp/my.log' to 'log-copy-interval'
解决办法:已经不支持此参数,删除log配置log-copy-interval
    换成
    general_log=ON
    general_log_file=/tmp/mysql.log
http://blog.itpub.net/12762446/viewspace-1195014/
innobackupex: Connecting to MySQL server with DSN 'dbi:mysql
解决办法:yum -y install  perl-DBD-mysql
恢复
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 1073741824 bytes!
解决办法:
#rm -rf /home/sql/mysql/ib_logfile1
#rm -rf /home/sql/mysql/ib_logfile0
主从

常用命令

配置主从信息
    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;
开始主从
	start slave;
停止
	stop slave;
重置配置
	reset slave;
跳过一步错误,后面的数字可变 
    set global sql_slave_skip_counter =1; 
查看从库
	show slave status\G;
重新配置log位置
	CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
查看主库日志信息
	show master status\G;
查看数据库版本
	select version();

主从不同步问题参考


http://www.jb51.net/article/33052.htm

参考

Mysql安装

http://www.cnblogs.com/sunson/articles/2172086.html

备份恢复

http://blog.51yip.com/mysql/1650.html

主从配置

http://blog.csdn.net/hguisu/article/details/7325124

https://segmentfault.com/a/1190000003063874

https://segmentfault.com/a/1190000002575399

转载于:https://my.oschina.net/u/3080595/blog/1511111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值