【澳门金沙vip】MySQL5.6 Replication主从复制(读写分离卡塔尔 配置豆蔻梢头体化版,mysql主从读写分离

MySQL5.6主从复制(读写分离)教程

MySQL5.6 Replication主从复制(读写分离) 配置完整版,mysql主从读写分离

MySQL5.6主从复制(读写分离)教程

1、MySQL5.6开始主从复制有两种方式:

基于日志(binlog);
基于GTID(全局事务标示符)。

需要注意的是:GTID方式不支持临时表!所以如果你的业务系统要用到临时表的话就不要考虑这种方式了,至少目前最新版本MySQL5.6.12的GTID复制还是不支持临时表的。

所以本教程主要是告诉大家如何通过日志(binlog)方式做主从复制!

2、MySQL官方提供的MySQL Replication教程:

第一步:准备工作

主服务器: 192.168.1.100
从服务器: 192.168.1.101

MySQL软件版本:

MySQL-server-advanced-5.6.18-1.el6.x86_64.rpm
MySQL-cient-advanced-5.6.18-1.el6.x86_64.rpm

第二步:在主服务器和从服务器上安装MySQL数据库软件

安装方法,请参见

MySQL数据库软件安装完成后,不要急着做mysql启动操作。建议把mysql初始化生成的/usr/my.cnf
(如果是从源文件编译安装时,路径应该是在/usr/local/mysql/mysql.cnf)删除,然后把优化好的mysql
配置文件my.cnf放到/etc下。
第三步:修改主数据库的配置文件/usr/my.cnf
复制代码 代码如下:
[mysqld]
 
server-id=1
log-bin=mysqlmaster-bin.log
sync_binlog=1

innodb_buffer_pool_size=512M
innodb_flush_log_at_trx_commit=1
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
lower_case_table_names=1
log_bin_trust_function_creators=1

第四步:修改从数据库配置文件/usr/my.cnf
 
复制代码 代码如下:
server-id=2
log-bin=mysqlslave-bin.log
sync_binlog=1
innodb_buffer_pool_size=512M
innodb_flush_log_at_trx_commit=1
 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
log_bin_trust_function_creators=1

第五步:在主数据库和从数据库服务器上分别执行以下命令重新启动主数据库和从数据库
复制代码 代码如下:
[[email protected]
~]# service mysql restart
[[email protected]
~]# service mysql restart

第六步:在主数据库上创建用于主从复制的账户

复制代码 代码如下:
[[email protected]
~]# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’192.168.1.101’
IDENTIFIED BY ‘111111’;
Query OK, 0 rows affected (0.00 sec)

注意:以上命令中的IP地址,是从数据库服务器的IP地址。

第七步:主数据库锁表(禁止再插入数据以获取主数据库的的二进制日志坐标)
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
 

第八步:查看主数据库的状态(并记录下File字段和Position字段的值,在配置从服务器时有用到)

mysql> show master status;
+————————+———-+————–+——————+——————-+
| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB
| Executed_Gtid_Set |
+————————+———-+————–+——————+——————-+
| mysqlmaster-bin.000004 |      327 |              |                 
|                  |
+————————+———-+————–+——————+——————-+
1 row in set (0.00 sec)

第九步:创建主数据库的快照文件
[[email protected]
~]# cd /usr/bin/
# ./mysqldump -uroot -p -h127.0.0.1 -P3306 –all-databases –triggers
–routines –events >>/mnt/windows/all.sql
上面命令中的红色部分,是一个共享目录,这个目录可以同时被主数据库服务器和从数据库服务器访问到。
如果没有这样的共享目录,可以将all.sql放在其它任何目录下,然后使用scp命令复制到远程从数据库服务器的某个目录中
这条命令的执行时间根据数据量的不同,会有所不同,如果主数据库的数据量很大,可能需要很长时间,那么在这种情况下,就最好在晚上没有业务的时候进行这个操作,否则第七步中的锁表操作会对业务系统造成很大的影响
第十步:解锁主数据库的锁表操作
[[email protected]
~]# mysql -uroot -p    (本命令在主数据库服务器上执行)
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
第十一步:在从数据库服务器上导入第七步创建的快照文件到从数据库中
[[email protected]
~]# mysql -uroot -p -h127.0.0.1 -P3306 < /mnt/windows/all.sql
第十二步:在从数据库服务器上设置主数据库服务器向从数据库服务器同步
[[email protected]
~]# mysql -uroot -p
mysql> change master to master_host =
‘192.168.1.100’,master_user=’repl’,master_password=’111111′,master_log_file=’mysqlmaster-bin.000004′,master_log_pos=327;
注意:红色部分的值,是在第八步中查出来的,这里不能弄错了
第十三步:启动从数据库复制线程
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
第十四步:查询从数据库的复制线程状态

复制代码 代码如下:
mysql> show slave status \G
*************************** 1. row
***************************
              Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.100
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysqlmaster-bin.000004
          Read_Master_Log_Pos: 327
              Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 289
        Relay_Master_Log_File: mysqlmaster-bin.000004
          Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
          Replicate_Do_Table:
      Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                  Last_Errno: 0
                  Last_Error:
                Skip_Counter: 0
          Exec_Master_Log_Pos: 327
              Relay_Log_Space: 462
              Until_Condition: None
              Until_Log_File:
                Until_Log_Pos: 0
          Master_SSL_Allowed: No
          Master_SSL_CA_File:
          Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
              Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
              Last_SQL_Errno: 0
              Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
            Master_Server_Id: 1
                  Master_UUID: 2e5e1b22-f0a9-11e3-bbac-000c297799e0
            Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting
for the slave I/O thread to update it
          Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
    Last_SQL_Error_Timestamp:
              Master_SSL_Crl:
          Master_SSL_Crlpath:
          Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

如果Slave_IO_Running和Slave_SQL_Running两项都为yes,就表示主从复制配置成功了.
下面可以开始测试配置是否成功了,首先在主数据库的test数据库中新建一张表,然后插入几条数据,然后到从数据库看看是否同步过来了。
注意:当从数据库有大量的查询时,可以暂时将从数据库的复制线程关闭掉,等查询量降下来了,再打开,这样也不会丢失数据。

附:一个优化好后的主数据库配置文件和从数据配置文件内容如下:

复制代码 代码如下:
# For advice on how to change settings please see
#

[client]
port=3306
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
 
[mysqld]
sync_binlog=1
server-id=1
port=3306
socket=/usr/local/mysql/mysql.sock
pid-file=/home/mysql/temp/my3306.pid
user=mysql
datadir=/home/mysql/data
tmpdir=/home/mysql/temp/
log-bin=/home/mysql/data/mysqlmaster-bin
log-error=/home/mysql/logs/error.log
slow_query_log_file=/home/mysql/logs/slow.log
binlog_format=mixed
slow_query_log
long_query_time=10
wait_timeout=31536000
interactive_timeout=31536000
max_connections=500
max_user_connections=490
max_connect_errors=2
character_set_server=utf8
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 5M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 4
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
replicate_ignore_db=mysql
replicate_ignore_db=information_schema
expire-logs-days=10
skip-slave-start
skip-name-resolve
lower_case_table_names=1
log_bin_trust_function_creators=1
 
# InnoDB
innodb_data_home_dir=/home/mysql/data
innodb_log_group_home_dir=/home/mysql/logs
innodb_data_file_path=ibdata1:128M:autoextend
innodb_buffer_pool_size=2G
innodb_log_file_size=10M
innodb_log_buffer_size=8M
innodb_lock_wait_timeout=50
innodb_file_per_table
innodb_flush_log_at_trx_commit=1
 
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 

 
 
一个优化好的从数据库的配置文件如下:

复制代码 代码如下:
# For advice on how to change settings please see
#

[client]
port=3306
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
 
[mysqld]
sync_binlog=1
server-id=2
port=3306
socket=/usr/local/mysql/mysql.sock
pid-file=/home/mysql/temp/my3306.pid
user=mysql
datadir=/home/mysql/data
tmpdir=/home/mysql/temp/
log-bin=/home/mysql/data/mysqlslave-bin
log-error=/home/mysql/logs/error.log
slow_query_log_file=/home/mysql/logs/slow.log
binlog_format=mixed
slow_query_log
long_query_time=10
wait_timeout=31536000
interactive_timeout=31536000
max_connections=500
max_user_connections=490
max_connect_errors=2
character_set_server=utf8
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 5M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 4
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
replicate_ignore_db=mysql
replicate_ignore_db=information_schema
expire-logs-days=10
#skip-slave-start
skip-name-resolve
lower_case_table_names=1
log_bin_trust_function_creators=1
 
# InnoDB
innodb_data_home_dir=/home/mysql/data
innodb_log_group_home_dir=/home/mysql/logs
innodb_data_file_path=ibdata1:128M:autoextend
innodb_buffer_pool_size=2G
innodb_log_file_size=10M
innodb_log_buffer_size=8M
innodb_lock_wait_timeout=50
innodb_file_per_table
innodb_flush_log_at_trx_commit=1
 
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
 
[myisamchk]
key_buffer_size = 256K
sort_buffer_size = 256K
read_buffer = 256K
write_buffer = 256K
 
[mysqlhotcopy]
interactive-timeout
 
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
 
[myisamchk]
key_buffer_size = 256K
sort_buffer_size = 256K
read_buffer = 256K
write_buffer = 256K
 
[mysqlhotcopy]
interactive-timeout

Replication主从复制(读写分离)
配置完整版,mysql主从读写分离 MySQL5.6主从复制(读写分离)教程
1、MySQL5.6开始主从复制有两种方式:…

mysql-5.6主从复制及遇到的错误

1、MySQL5.6开始主从复制有两种方式:

 

基于日志;基于GTID。

mysql的复制过程:每执行一个写操作,它都会往自己的数据库中存一份,与此同时这个写操作也会存储在二进制日志文件中一份,并且把它们保存为事件,所以在这个数据库上,前端数据每执行一个写操作或者有可能引起修改的操作,都会保存一个事件,我们就把这个事件通过mysql服务器3306端口发送给另外一台服务器,另外一台服务器把这个事件接收下来,接受下来以后先保存在本地的日志文件中,而后从这个日志文件中一次读一个事件并且在本地执行一下,然后保存在数据库里面,这个过程就叫mysql的复制。

需要注意的是:GTID方式不支持临时表!所以如果你的业务系统要用到临时表的话就不要考虑这种方式了,至少目前最新版本MySQL5.6.12的GTID复制还是不支持临时表的。

 

所以本教程主要是告诉大家如何通过日志方式做主从复制!

安装mysql的过程就不讲了,直接开始我们的主从复制的配置过程:

2、MySQL官方提供的MySQL Replication教程:

 

第一步:准备工作

1、
开启master和slave的二进制日志功能,也就是在mysql的主配置文件/usr/local/mysql/etc/my.cnf中,添加log_bin=mysql-bin,将master的server_id
设置为1,slave的server_id=2.

主服务器: 192.168.1.100从服务器: 192.168.1.101

 

MySQL软件版本:

下面是master的配置文件

MySQL-server-advanced-5.6.18-1.el6.x86_64.rpmMySQL-cient-advanced-5.6.18-1.el6.x86_64.rpm

 

第二步:在主服务器和从服务器上安装MySQL数据库软件

[[email protected]
~]# cat /usr/local/mysql/etc/my.cnf | grep -v ^#| grep -v ^$

安装方法,请参见 //

[mysqld]

MySQL数据库软件安装完成后,不要急着做mysql启动操作。建议把mysql初始化生成的/usr/my.cnf(如果是从源文件编译安装时,路径应该是在/usr/local/mysql/mysql.cnf)删除,然后把优化好的mysql配置文件my.cnf放到/etc下。
第三步:修改主数据库的配置文件/usr/my.cnf 复制代码
代码如下:[mysqld]server-id=1log-bin=mysqlmaster-bin.logsync_binlog=1

 server_id = 1

innodb_buffer_pool_size=512Minnodb_flush_log_at_trx_commit=1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESlower_case_table_names=1log_bin_trust_function_creators=1

 log_bin=mysql-bin

第四步:修改从数据库配置文件/usr/my.cnf复制代码
代码如下:server-id=2log-bin=mysqlslave-bin.logsync_binlog=1innodb_buffer_pool_size=512Minnodb_flush_log_at_trx_commit=1

 log-bin-index = mysql-bin.index

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESlower_case_table_names=1log_bin_trust_function_creators=1

 log-error = /var/log/mysql/mysql-error.log

第五步:在主数据库和从数据库服务器上分别执行以下命令重新启动主数据库和从数据库复制代码 代码如下:[root@master ~]# service
mysql restart[root@slave ~]# service mysql restart

 general_log = 1

第六步:在主数据库上创建用于主从复制的账户

 general_log_file = /var/log/mysql/mysql.log

复制代码 代码如下:[root@master ~]#
mysql -uroot -pmysql GRANT REPLICATION SLAVE ON *.* TO
‘repl’@’192.168.1.101’ IDENTIFIED BY ‘111111’;Query OK, 0 rows affected
(0.00 sec)

 user = mysql

注意:以上命令中的IP地址,是从数据库服务器的IP地址。

 basedir = /usr/local/mysql

第七步:主数据库锁表(禁止再插入数据以获取主数据库的的二进制日志坐标)mysql
flush tables with read lock;Query OK, 0 rows affected (0.00 sec)

 datadir = /datadir

第八步:查看主数据库的状态(并记录下File字段和Position字段的值,在配置从服务器时有用到)

 port = 3306

mysql show master
status;+————————+———-+————–+——————+——————-+|
File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
Executed_Gtid_Set
|+————————+———-+————–+——————+——————-+|
mysqlmaster-bin.000004 | 327 | | |
|+————————+———-+————–+——————+——————-+1
row in set (0.00 sec)

 socket = /var/lib/mysql/mysql5.sock

第九步:创建主数据库的快照文件[root@master ~]# cd /usr/bin/#
./mysqldump -uroot -p -h127.0.0.1 -P3306 –all-databases –triggers
–routines –events
/mnt/windows/all.sql上面命令中的红色部分,是一个共享目录,这个目录可以同时被主数据库服务器和从数据库服务器访问到。如果没有这样的共享目录,可以将all.sql放在其它任何目录下,然后使用scp命令复制到远程从数据库服务器的某个目录中这条命令的执行时间根据数据量的不同,会有所不同,如果主数据库的数据量很大,可能需要很长时间,那么在这种情况下,就最好在晚上没有业务的时候进行这个操作,否则第七步中的锁表操作会对业务系统造成很大的影响第十步:解锁主数据库的锁表操作[root@master
~]# mysql -uroot -p (本命令在主数据库服务器上执行)mysql unlock
tables;Query OK, 0 rows affected (0.00
sec)第十一步:在从数据库服务器上导入第七步创建的快照文件到从数据库中[root@slave
~]# mysql -uroot -p -h127.0.0.1 -P3306
/mnt/windows/all.sql第十二步:在从数据库服务器上设置主数据库服务器向从数据库服务器同步[root@slave
~]# mysql -uroot -pmysql change master to master_host =
‘192.168.1.100’,master_user=’repl’,master_password=’111111′,master_log_file=’mysqlmaster-bin.000004′,master_log_pos=327;注意:红色部分的值,是在第八步中查出来的,这里不能弄错了第十三步:启动从数据库复制线程mysql
start slave;Query OK, 0 rows affected (0.01
sec)第十四步:查询从数据库的复制线程状态

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

复制代码 代码如下:mysql show slave status
\G*************************** 1. row
*************************** Slave_IO_State:
Waiting for master to send event Master_Host: 192.168.1.100
Master_User: repl Master_Port: 3306 Connect_Retry: 60
Master_Log_File: mysqlmaster-bin.000004 Read_Master_Log_Pos: 327
Relay_Log_File: slave-relay-bin.000002 Relay_Log_Pos: 289
Relay_Master_Log_File: mysqlmaster-bin.000004 Slave_IO_Running: Yes
Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB:
Replicate_Do_Table: Replicate_Ignore_Table:
Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno:
0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 327
Relay_Log_Space: 462 Until_Condition: None Until_Log_File:
Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File:
Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher:
Master_SSL_Key: Seconds_Behind_Master:
0Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0
Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error:
Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID:
2e5e1b22-f0a9-11e3-bbac-000c297799e0 Master_Info_File:
/var/lib/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for
the slave I/O thread to update it Master_Retry_Count: 86400
Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp:
Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set:
Executed_Gtid_Set: Auto_Position: 01 row in set (0.00 sec)

 

如果Slave_IO_Running和Slave_SQL_Running两项都为yes,就表示主从复制配置成功了.下面可以开始测试配置是否成功了,首先在主数据库的test数据库中新建一张表,然后插入几条数据,然后到从数据库看看是否同步过来了。注意:当从数据库有大量的查询时,可以暂时将从数据库的复制线程关闭掉,等查询量降下来了,再打开,这样也不会丢失数据。

接下来是slave的配置文件

附:一个优化好后的主数据库配置文件和从数据配置文件内容如下:

 

复制代码 代码如下:# For advice on how to
change settings please see#
[client]port=3306socket=/usr/local/mysql/mysql.sockdefault-character-set=utf8[mysqld]sync_binlog=1server-id=1port=3306socket=/usr/local/mysql/mysql.sockpid-file=/home/mysql/temp/my3306.piduser=mysqldatadir=/home/mysql/datatmpdir=/home/mysql/temp/log-bin=/home/mysql/data/mysqlmaster-binlog-error=/home/mysql/logs/error.logslow_query_log_file=/home/mysql/logs/slow.logbinlog_format=mixedslow_query_loglong_query_time=10wait_timeout=31536000interactive_timeout=31536000max_connections=500max_user_connections=490max_connect_errors=2character_set_server=utf8skip-external-lockingkey_buffer_size
= 128Mmax_allowed_packet = 5Mtable_open_cache =
512sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size
= 8Mmyisam_sort_buffer_size = 64Mthread_cache_size =
8query_cache_size = 32M# Try number of CPU’s*2 for
thread_concurrencythread_concurrency =
4binlog-ignore-db=mysqlbinlog-ignore-db=information_schemareplicate_ignore_db=mysqlreplicate_ignore_db=information_schemaexpire-logs-days=10skip-slave-startskip-name-resolvelower_case_table_names=1log_bin_trust_function_creators=1#
InnoDBinnodb_data_home_dir=/home/mysql/datainnodb_log_group_home_dir=/home/mysql/logsinnodb_data_file_path=ibdata1:128M:autoextendinnodb_buffer_pool_size=2Ginnodb_log_file_size=10Minnodb_log_buffer_size=8Minnodb_lock_wait_timeout=50innodb_file_per_tableinnodb_flush_log_at_trx_commit=1#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES一个优化好的从数据库的配置文件如下:

[[email protected]
~]# cat /usr/local/mysql/etc/my.cnf | grep –

复制代码 代码如下:# For advice on how to
change settings please see#
[client]port=3306socket=/usr/local/mysql/mysql.sockdefault-character-set=utf8[mysqld]sync_binlog=1server-id=2port=3306socket=/usr/local/mysql/mysql.sockpid-file=/home/mysql/temp/my3306.piduser=mysqldatadir=/home/mysql/datatmpdir=/home/mysql/temp/log-bin=/home/mysql/data/mysqlslave-binlog-error=/home/mysql/logs/error.logslow_query_log_file=/home/mysql/logs/slow.logbinlog_format=mixedslow_query_loglong_query_time=10wait_timeout=31536000interactive_timeout=31536000max_connections=500max_user_connections=490max_connect_errors=2character_set_server=utf8skip-external-lockingkey_buffer_size
= 128Mmax_allowed_packet = 5Mtable_open_cache =
512sort_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size
= 8Mmyisam_sort_buffer_size = 64Mthread_cache_size =
8query_cache_size = 32M# Try number of CPU’s*2 for
thread_concurrencythread_concurrency =
4binlog-ignore-db=mysqlbinlog-ignore-db=information_schemareplicate_ignore_db=mysqlreplicate_ignore_db=information_schemaexpire-logs-days=10#skip-slave-startskip-name-resolvelower_case_table_names=1log_bin_trust_function_creators=1#
InnoDBinnodb_data_home_dir=/home/mysql/datainnodb_log_group_home_dir=/home/mysql/logsinnodb_data_file_path=ibdata1:128M:autoextendinnodb_buffer_pool_size=2Ginnodb_log_file_size=10Minnodb_log_buffer_size=8Minnodb_lock_wait_timeout=50innodb_file_per_tableinnodb_flush_log_at_trx_commit=1#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESsql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO[mysqldump]quickmax_allowed_packet
= 16M[mysql]no-auto-rehash[myisamchk]key_buffer_size =
256Ksort_buffer_size = 256Kread_buffer = 256Kwrite_buffer =
256K[mysqlhotcopy]interactive-timeoutsql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO[mysqldump]quickmax_allowed_packet
= 16M[mysql]no-auto-rehash[myisamchk]key_buffer_size =
256Ksort_buffer_size = 256Kread_buffer = 256Kwrite_buffer =
256K[mysqlhotcopy]interactive-timeout

v ^# | grep -v ^$

[mysqld]

 server_id = 2

 log_bin=mysql-bin

 log-bin-index = mysql-bin.index

 general_log = 1

 general_log_file = /var/log/mysql/mysql.log

 log-error=/var/log/mysql/mysql.error

 basedir = /usr/local/mysql

 datadir = /database

 port = 3306

 socket = /var/run/mysqld/mysql.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

 

2、在主服务器上,设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限

 

mysql> grant replication slave on *.* to ‘tt’@’192.168.254.153’
identified by ‘123456’;

Query OK, 0 rows affected (0.06 sec)

 

mysql> show master status \G;              
 查看当前master的二进制日志状态和起始点

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

             File: mysql-bin.000011

         Position: 330

     Binlog_Do_DB: 

 Binlog_Ignore_DB: 

Executed_Gtid_Set: 

1 row in set (0.01 sec)

 

 

 

mysql> flush tables with read lock;            
将mysql的数据库锁表,仅仅允许读,以保证数据的一致性

Query OK, 0 rows affected (0.06 sec)

 

 

 

[[email protected]
~]# mysqldump -uroot -p123 blog  > blog.sql      
 将blog这个库以脚本的形式导出来,便于导入slave

 

mysql> unlock tables;                                            
 解锁

Query OK, 0 rows affected (0.00 sec)

 

3、 slave上的操作