文档章节

MySQL备份及主从同步

mywd
 mywd
发布于 2017/08/16 12:24
字数 1196
阅读 23
收藏 0

安装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

© 著作权归作者所有

共有 人打赏支持
mywd
粉丝 3
博文 9
码字总数 4255
作品 0
私信 提问
MySQL主从介绍&准备工作&配置主&配置从&测试主从同步

17.1 MySQL主从介绍 MySQL主从的概念 • MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 • MySQL主从是...

影夜Linux
07/06
0
1
mysql主从状态异常解决办法

今天发现新插入的一条数据,读取的时候无此数据,因为我这里做了读写分离,所以怀疑是从库的问题。 不知什么原因导致Mysql的主从数据库没有同步。 先上Master库: mysql>show processlist; ...

蜗牛的嘲讽
2016/12/22
0
0
解决MySQL主从不同步问题

解决mysql主从不同步 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show mast...

浅景尘
2017/07/26
0
0
解决mysql 数据库主从不同步

今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show master status; +--------...

冰山剑客
2017/07/05
0
0
mysql 5.6主从同步

主库IP:192.168.1.10 从库IP:192.168.1.11 1、主库配置编辑my.cnf: # 启用二进制日志 logbin = mysql-bin server-id = 111 // 此 ID 号不可重复 log-bin-index=mysql-bin.index syncbinl......

菜鸟的征程
2016/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx+Keepalived实现站点高可用

Nginx+Keepalived实现站点高可用

吴伟祥
4分钟前
0
0
git常用命令速查表

任梁荣
7分钟前
0
0
一文带你学会使用YOLO及Opencv完成图像及视频流目标检测(上)

摘要: 本文介绍使用opencv和yolo完成图像目标检测,代码解释详细,附源码,上手快。 计算机视觉领域中,目标检测一直是工业应用上比较热门且成熟的应用领域,比如人脸识别、行人检测等,国内...

阿里云官方博客
9分钟前
0
0
SpringBoot整合RabbitMQ之典型应用场景实战二

实战前言 RabbitMQ 作为目前应用相当广泛的消息中间件,在企业级应用、微服务应用中充当着重要的角色。特别是在一些典型的应用场景以及业务模块中具有重要的作用,比如业务服务模块解耦、异步...

liwei2000
11分钟前
0
0
ES6这些就够了

刚开始用vue或者react,很多时候我们都会把ES6这位大兄dei加入我们的技术栈中。但是ES6那么多那么多特性,我们真的需要全部都掌握吗?秉着二八原则,掌握好常用的、有用的这个可以让我们的开...

文文1
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部