MySQL備份及主從同步

安裝mysql數據庫

一、從mysql官網下載須要的版本 (說明下:下面的網址是官網,不能直接get,須要看下服務器的版本和操做系統位數。找到對應的版本連接填進去。)

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

二、進入系統後,檢測是否安裝mysql.

#rpm -qa | grep -i mysql

若已安裝,那麼刪除它(這裏填的是qa出來的東西):html

#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==mysql

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

==處理配置文件==sql

#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獨立的表空間文件

==最後執行安裝命令==vim

#mysql_install_db

四、啓動數據庫

#/etc/init.d/mysql start

五、登陸數據

#mysql -uroot -p

備份恢復

安裝Percona Xtrabackup備份工具

一、在官網上獲取須要的版本(5.5以上mysql可使用最新版,5.0的mysql只用用2.0的工具)segmentfault

#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

三、安裝備份工具(若是是備份還原再也不同一臺服務器,都須要安裝)app

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

備份

一、全庫備份(若是是作主從,建議在主庫執行flush logs;)socket

#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

PS:若是還想用原庫的用戶,須要把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

三、==主庫==:建立主從同步賬號

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

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

#FLUSH PRIVILEGES;

四、==主庫庫==:查找binlog相關

master_log_file 這個參數是主庫binlog的當前文件。 master_log_pos 這個是binlog的當前點。 這兩個參數,能夠經過主庫裏面獲取。 獲取方法:

#show master status\G

五、==從庫==:配置主從信息

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

#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

http://www.javashuo.com/article/p-ozzkwdgo-ee.html

相關文章
相關標籤/搜索