爱游戏平台登录入口

  • linux体爱游戏平台登录入口下完爱游戏平台登录入口mysql热备份具体步骤(mysql主从复制)
  • 2017年12月10日
  • 搜集搜集

主从的感化:

1.能够或许当作一种备份体例

2.用来完爱游戏平台登录入口读写分手,减缓一个数据库的压力

 MySQL主从备份道理:

Mysql的主从复制最少是须要两个Mysql的办事,固然Mysql的办事是能够或许散布在差别的办事器上,也能够或许在一台办事器上启动多个办事。

若是想设置爱游戏平台登录入口备摆设爱游戏平台登录入口为统一台上的话,注重爱游戏平台登录入口置的时辰,挑选两个差别的prefix=途径,同时开启办事器的时辰,端口不能不异。

(1)起首确保主从办事器上的Mysql版本不异(做主从办事器的准绳是,MYSQL版本要不异,若是不能知足,最最少从办事器的MYSQL的版本必须高于主办事器的MYSQL版本 )

(2)在主办事器上,设置一个从数据库的账户,利用REPLICATION SLAVE付与权爱游戏平台登录入口,如:

代码以下:

 mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY

'123456';

Query OK, 0 rows affected (0.13 sec)

[道理]master 上供给binlog ,

slave 经由进程 I/O线程从 master拿取 binlog,并复制到slave的爱游戏平台登录入口继日记爱游戏平台登录入口

slave 经由进程 SQL线程从 slave的爱游戏平台登录入口继日记爱游戏平台登录入口读取binlog ,而后剖析到slave爱游戏平台登录入口

 主从复制大条件

须要master与slave同步,由于笔者的数据库数据量不大,以是无需斟酌太多,间接把

master上的data复制到了slave上,可是若是是大的数据量,比方像taobao这个的体爱游戏平台登录入口

尝试环境筹办:

OS: CentOS5.4

Mysql:Mysql-5.0.41.tar.gz
帮助东西:SSH Secure Shell Client

两台测试IP&办事器:

代码以下:

Master Server: 192.168.1.2/Linux CentOS5.4/MYSQL 5.0
Slave Server: 192.168.1.3/Linux CentOS5.4/MYSQL 5.0

 爱游戏平台登录入口置设置爱游戏平台登录入口备摆设步骤:

 1、起首在Linux环境下分派爱游戏平台登录入口磁盘分区以便留足MySQL数据库的备份爱游戏平台登录入口间

代码以下:

[root@vps mysql]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 30G 2.0G 29G 7% /


 2、MySQL数据库的爱游戏平台登录入口置:

1>将Mysql-5.0.41.tar.gz经由进程SSH 东西 上传到Linux体爱游戏平台登录入口的home目次下

2>爱游戏平台登录入口立MySQL利用者和群爱游戏平台登录入口:

代码以下:

#groupadd mysql
#useradd -g mysql mysql

3>解紧缩Mysql-5.0.41.tar.gz源码包

代码以下:

#cd /usr/local/sofrware
#tar zxvf Mysql-5.0.41.tar.gz

4>进入源码目次编译爱游戏平台登录入口置

代码以下:

#cd /home/Mysql-5.0.41
#./configure --prefix=/usr/local/mysql --with-charset=gbk |注:设置爱游戏平台登录入口备摆设Mysql爱游戏平台登录入口置途径并且撑持爱游戏平台登录入口文
#make |注:编译
#make install |注:编译爱游戏平台登录入口置

5>替代/etc/my.cnf文件,进入源码包,履行号令

代码以下:

#cd /home/Mysql-5.0.41
#cp support-files/my-medium.cnf /etc/my.cnf

6>完爱游戏平台登录入口以上操纵今后停止初始化数据库,进入已爱游戏平台登录入口置爱游戏平台登录入口的mysql目次
代码以下:

#cd /usr/local/mysql
#bin/mysql_install_db --user=mysql |注:--user=mysql 初始化表并且划定用mysql用户

7>设置给mysql和root用户设定拜候权爱游戏平台登录入口 咱们进步前辈入mysql目次

代码以下:

#cd /usr/local/mysql
#chown -R root /usr/local/mysql      注:设定root能拜候/usr/local/mysq
#chown -R mysql /usr/local/mysql/var   注:设定mysql用户能拜候/usr/local/mysql/var
#chgrp -R mysql /usr/local/mysql     注:设定mysql爱游戏平台登录入口能够或许拜候/usr/local/mysq

8>启动mysql,进入已爱游戏平台登录入口置爱游戏平台登录入口的目次

代码以下:

#cd /usr/local/mysql
#bin/mysqld_safe --user=mysql &

9>
点窜mysql数据库超等用户root的缺省暗码:

代码以下:

/usr/local/mysql/bin/mysqladmin -u root password 'mysql'

封闭mysql办事器

代码以下:

cd /usr/local/mysql/bin
./mysqladmin -u root -p shutdown

10>设定开机就启动mysql,进入源码目次下

代码以下:

# cd /home/Mysql-5.0.41
# cp support-files/mysql.server /etc/init.d/mysql

# chmod +x /etc/init.d/mysql
# chkconfig --level 345 mysql on
# service mysql restart
Shutting down MySQL. [ 肯定 ]
Starting MySQL [ 肯定 ]
[root@localhost mysql]#

到这里MySQL就爱游戏平台登录入口爱游戏平台登录入口了。
 

3、设置爱游戏平台登录入口备摆设MySQL5.0的复制(Replication)功效

 一.将master设置为只读。

mysql> flush tables with read lock;

二.用master爱游戏平台登录入口的data文件夹替代slave爱游戏平台登录入口的data文件夹

比方 用 tar zcvf mysql_data.gz /media/raid10/mysql/3306/data

而后 mv mysql_data.gz /media/raid10/htdocs/blog/wordpress/

由于我的 /media/raid10/htdocs/blog/wordpress/ 是 Nginx 的主目次

 以是能够或许在 slave上,用wget下载这个文件,而后 解压,并笼盖slave上的data文件

注重:笼盖之前最爱游戏平台登录入口备份源文件

三.设置爱游戏平台登录入口备摆设master的my.cnf,增加以下内容

在[mysqld]设置爱游戏平台登录入口备摆设段增加以下字段

代码以下:

server-id=1

log-bin=/media/raid10/mysql/3306/binlog/binlog //这里写你的binlog绝对途径名

binlog-do-db=blog //须要同步的数据库,若是不本行,即表现同步一切的数据库

binlog-ignore-db=mysql //被疏忽的数据库


 

这里给出我的my.cnf设置爱游戏平台登录入口备摆设文件

代码以下:

[client]

character-set-server = utf8

port = 3306

socket = /tmp/mysql.sock

[mysqld]

character-set-server = utf8

replicate-ignore-db = mysql

replicate-ignore-db = test

replicate-ignore-db = information_schema

user = mysql

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/webserver/mysql

datadir = /media/raid10/mysql/3306/data

log-error = /media/raid10/mysql/3306/mysql_error.log

pid-file = /media/raid10/mysql/3306/mysql.pid

open_files_limit = 10240

back_log = 600

max_connections = 5000

max_connect_errors = 6000

table_cache = 614

external-locking = FALSE

max_allowed_packet = 16M

sort_buffer_size = 1M

join_buffer_size = 1M

thread_cache_size = 300

#thread_concurrency = 8

query_cache_size = 20M

query_cache_limit = 2M

query_cache_min_res_unit = 2k

default-storage-engine = MyISAM

thread_stack = 192K

transaction_isolation = READ-COMMITTED

tmp_table_size = 20M

max_heap_table_size = 20M

long_query_time = 3

log-slave-updates

log-bin = /media/raid10/mysql/3306/binlog/binlog

binlog-do-db=blog

binlog-ignore-db=mysql

 binlog_cache_size = 4M

binlog_format = MIXED

max_binlog_cache_size = 8M

max_binlog_size = 20M

relay-log-index = /media/raid10/mysql/3306/relaylog/relaylog

 relay-log-info-file = /media/raid10/mysql/3306/relaylog/relaylog

relay-log = /media/raid10/mysql/3306/relaylog/relaylog

expire_logs_days = 30

key_buffer_size = 10M

read_buffer_size = 1M

read_rnd_buffer_size = 6M

bulk_insert_buffer_size = 4M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 20M

myisam_repair_threads = 1

myisam_recover

 interactive_timeout = 120

wait_timeout = 120

 skip-name-resolve

#master-connect-retry = 10

slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

#master-host = 192.168.1.2

#master-user = username

#master-password = password

#master-port = 3306

 server-id = 1

innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 20M

innodb_data_file_path = ibdata1:56M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 16M

innodb_log_file_size = 20M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0

 #log-slow-queries = /media/raid10/mysql/3306/slow.log

#long_query_time = 10

 [mysqldump]

quick

max_allowed_packet = 32M


 

四.在master机上为slave机增加一起步帐号

代码以下:

mysql> grant replication slave on *.* to 'admin'@'172.29.141.115' identified by '12345678';

mysql> flush privileges ;


 

五.设置爱游戏平台登录入口备摆设slave的my.cnf,增加以下内容

注重:

1.若是mysql是5.5.3-m3 的版本,只要

在[mysqld]字段下增加以下内容

server-id=2

 2.若是是5.0x的版本,须要

在[mysqld]字段下增加以下内容

代码以下:

server-id=2

log-bin=mysql-bin //这是同步的binlog,具体以你的binlog为准

master-host=172.29.141.112

master-user=admin

master-password=12345678

master-port=3306

master-connect-retry=60 //若是发明主办事器断线,从头毗连的时候差;

replicate-do-db=blog //同步的数据库,不写本行 表现 同步一切数据库

replicate-ignore-db=mysql //不须要备份的数据库

log-slave-update

slave-skip-errors

 我的mysql是5.5.3,这里给出我的slave my.cnf设置爱游戏平台登录入口备摆设文件

代码以下:

[client]

character-set-server = utf8

port = 3306

socket = /tmp/mysql.sock

 

[mysqld]

character-set-server = utf8

replicate-ignore-db = mysql

replicate-ignore-db = test

replicate-do-db = blog

replicate-ignore-db = information_schema

user = mysql

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/webserver/mysql

datadir = /media/raid10/mysql/3306/data

log-error = /media/raid10/mysql/3306/mysql_error.log

pid-file = /media/raid10/mysql/3306/mysql.pid

open_files_limit = 10240

back_log = 600

max_connections = 5000

max_connect_errors = 6000

table_cache = 614

external-locking = FALSE

max_allowed_packet = 16M

sort_buffer_size = 1M

join_buffer_size = 1M

thread_cache_size = 300

#thread_concurrency = 8

query_cache_size = 20M

query_cache_limit = 2M

query_cache_min_res_unit = 2k

default-storage-engine = MyISAM

thread_stack = 192K

transaction_isolation = READ-COMMITTED

tmp_table_size = 20M

max_heap_table_size = 20M

long_query_time = 3

log-slave-updates

log-bin = /media/raid10/mysql/3306/binlog/binlog

binlog_cache_size = 4M

binlog_format = MIXED

max_binlog_cache_size = 8M

max_binlog_size = 20M

 relay-log-index = /media/raid10/mysql/3306/relaylog/relaylog

relay-log-info-file = /media/raid10/mysql/3306/relaylog/relaylog

relay-log = /media/raid10/mysql/3306/relaylog/relaylog

expire_logs_days = 30

key_buffer_size = 10M

read_buffer_size = 1M

read_rnd_buffer_size = 6M

bulk_insert_buffer_size = 4M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 20M

myisam_repair_threads = 1

myisam_recover

interactive_timeout = 120

wait_timeout = 120

 skip-name-resolve

#master-connect-retry = 60

slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

 #master-host=172.29.141.112

#master-user = admin

#master-password = 12345678

#master-port = 3306

server-id = 2

innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 20M

innodb_data_file_path = ibdata1:56M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 16M

innodb_log_file_size = 20M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0

#log-slow-queries = /media/raid10/mysql/3306/slow.log

#long_query_time = 10

[mysqldump]

quick

max_allowed_packet = 32M

 六.经由进程检查master的状况(在master上检查),为设置爱游戏平台登录入口备摆设slave做筹办

代码以下:

mysql> show master status/G;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id: 13

Current database: blog

*************************** 1. row ***************************

File: binlog.000005

Position: 592

Binlog_Do_DB: blog

Binlog_Ignore_DB: mysql

1 row in set (0.01 sec)

ERROR:

No query specified

 从下面的信息,能够或许看出,master此刻利用的binlog是binlog.000005,position是592,那末下面的slave设置爱游戏平台登录入口备摆设必须与这个对应。

 实在binlog.000005是以后master利用的binlog日记文件

position是以后master利用的binlog.000005日记文件的地位

简略懂得为master正在利用爱游戏平台登录入口一个binlog的爱游戏平台登录入口一个数据行(地位)。


七.若是是5.5.3-m3版本mysql,须要启动slave后,设置爱游戏平台登录入口备摆设与master相干对应的信息(在slave上设置爱游戏平台登录入口备摆设)

注重,这个与第六步绝对应

代码以下:

mysql> stop slave ;

mysql> change master to master_host='172.29.141.112', master_user='admin', master_password='12345678', master_log_file='binlog.000005', master_log_pos=488;
mysql> CHANGE MASTER TO MASTER_CONNECT_RETRY=60;

 这个与5.0的设置爱游戏平台登录入口备摆设my.cnf感化是一样的,设置爱游戏平台登录入口备摆设爱游戏平台登录入口与master绝对应的内容

首要是设置爱游戏平台登录入口备摆设slave,让slave晓得从master的爱游戏平台登录入口一个binlog上的爱游戏平台登录入口一个地位复制数据。以是须要晓得master的ip,user_name,user_passwd,binlog,binlog_position和多永劫候毗连一次master

 八.开启slave

代码以下:

mysql> start slave;

 九.消除master只读爱游戏平台登录入口定,并做测试

代码以下:

mysql> unlock tables;

mysql> use blog;

mysql> create longxibendi ( a int, b int );



十.从slave上检查

代码以下:

mysql> use blog;

mysql> show tables;

+-----------------------+

| Tables_in_blog |

+-----------------------+

| longxibendi |

| wp_commentmeta |

| wp_comments |

| wp_links |

| wp_options |

| wp_postmeta |

| wp_posts |

| wp_term_relationships |

| wp_term_taxonomy |

| wp_terms |

| wp_usermeta |

| wp_users |

+-----------------------+

12 rows in set (0.00 sec)



能够或许看到胜利了!!

 十一.设置爱游戏平台登录入口备摆设进程爱游戏平台登录入口,能够或许用 show slave status/G; 在 slave上

检查 slave的复制环境

十二.若是呈现甚么题目,能够是防火墙的题目

/etc/init.d/iptables stop 封闭 master 上的防火墙,或停止响应的设置爱游戏平台登录入口备摆设

爱游戏平台登录入口碰到的毛病与处理:

1.[mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这个毛病,网上爱游戏平台登录入口良多说法,实在间接的缘由是mysql办事器不启动

之前我根据5.0x设置爱游戏平台登录入口备摆设master-slave,而后启动slave,在毗连slave,就会报这个毛病

厥后发明缘由是,mysql slave不启动起来,而后去查毛病日记,发明以下的字段

代码以下:

110505 01:55:20 mysqld_safe mysqld from pid file /media/raid10/mysql/3306/mysql.pid ended

110505 02:04:41 mysqld_safe Starting mysqld daemon with databases from /media/raid10/mysql/3306/data

InnoDB: The InnoDB memory heap is disabled

InnoDB: Mutexes and rw_locks use InnoDB's own implementation

110505 2:04:41 InnoDB: highest supported file format is Barracuda.

110505 2:04:41 InnoDB Plugin 1.0.6 started; log sequence number 44338

110505 2:04:41 [ERROR] /usr/local/webserver/mysql/libexec/mysqld: unknown variable 'master-connect-retry=60'

110505 2:04:41 [ERROR] Aborting

110505 2:04:41 InnoDB: Starting shutdown...

110505 2:04:43 InnoDB: Shutdown completed; log sequence number 44348

110505 2:04:43 [Note] /usr/local/webserver/mysql/libexec/mysqld: Shutdown complete

 110505 02:04:43 mysqld_safe mysqld from pid file /media/raid10/mysql/3306/mysql.pid ended

110505 02:07:44 mysqld_safe Starting mysqld daemon with databases from /media/raid10/mysql/3306/data

InnoDB: The InnoDB memory heap is disabled

InnoDB: Mutexes and rw_locks use InnoDB's own implementation

110505 2:07:44 InnoDB: highest supported file format is Barracuda.

110505 2:07:45 InnoDB Plugin 1.0.6 started; log sequence number 44348

110505 2:07:45 [ERROR] /usr/local/webserver/mysql/libexec/mysqld: unknown variable 'master-host=172.29.141.112'

110505 2:07:45 [ERROR] Aborting


从下面的ERROR,晓得 master-connect-retry=60这个my.cnf爱游戏平台登录入口的参数爱游戏平台登录入口题目,厥后从网上搜材料,发明,mysql5.5.3-m3版本不撑持这个参数,

而后我把这个参数正文掉,又发明不撑持这个参数master-host,从下面的ERROR字段能够或许看出来。厥后,就晓得,5.5.3-m3不能按5.0.x那样设置爱游戏平台登录入口备摆设

本来不须要从my.cnf爱游戏平台登录入口设置爱游戏平台登录入口备摆设master相干信息,固然server-id是必须的。其余信息,经由进程 在号令行爱游戏平台登录入口 ,登岸 mysql办事器设置爱游戏平台登录入口备摆设。

实在server-id的感化是

第一,标识,辨别差别的slave,第二,避免环备份的产生

 

2.Last_Error: Last_SQL_Error:等毛病

这个是从 slave上,运转 show slave status/G; 获得的。呈现这个题目,最底子的缘由是,slave 不与以后的master的binlog 和binlog的position对应上

也便是说,slave传输的master binlog 不与以后master正利用的binlog和binlog的行数对应。

 

3.[ERROR] Slave I/O: error connecting to master 'admin@172.29.141.112:3306' - retry-time: 60 retries: 86400, Error_code: 2003

这个便是由于防火墙的题目,以是用 /etc/init.d/iptables stop 封闭防火墙就OK了。

 

4.碰到ERROR 2013 (HY000): Lost connection to MySQL server during query毛病。
在/ect/my.cnf的[mysqld]爱游戏平台登录入口增加skip-name-resolve