MySQL数据库主从复制

    xiaoxiao2022-07-07  140

    mysql主从复制

    MysQL主从复制环境构建至少需2台服务器,可以配置1主多从,多主多从,以1主1 从为例,MySQ1.主从复制架构实战步骤如下。 (1)系统环境准备 master:192.168.0.134 slave:192.168.0.135 (2) master安装及配置 master端使用源码安装MySQl.5.5版本软件后,在/etc/my.cnf配置文件[ mysqld]段中加入如下代码,然后重启 MySQL服务即可,如果在安装时 cp my-large.cnf /etc/ my.cnf,则无须添加如下代码: server-id=1 log-bin=mysql-bin master端/etc/my.cnf完整配置代码如下: [client] port=3306 socket=/tmp/mysql. sock [mysqld] port=3306 socket=/tmp/mysql.sock skip-external-locking key_buffer_size= 256MB max_allowed_packet= 1MB table_open_cache=256MB sort_buffer_size=1MB read_buffer_size=1MB read_rnd_buffer_size=4MB myisam_sort_buffer_size=64MB thread_cache_size=8 query_cache_size=16MB thread_concurrency=8 log-bin=mysql-bin binlog_format=mixed server- id= 1 [mysqldump] quick max_allowed_packet=16MB [ mysql] no- auto- rehash [myisamchk] key_buffer_size= 128MB sort_buffer_size= 128MB read_buffer= 2MB write_buffer= 2MB [mysqlhotcopy] interactive-timeout 在 master数据库服务器命令行中创建 tongbu用户及密码并设置权限,执行如下查看 bin-log文件及 position点,如图所示。 grant replication slave on . to ‘tongbu’@’%’ identified by ‘song123’; show master status;

    (3) slave安装及配置 slave:端使用源码安装MySQL 5.5版本 软件后,在/etc/my.cnf配置文件[ mysqld]段中加入如下代码,然后重启 MySQL服务即可,如果在安装时 cp my-large.cnf /etc/my.cnf,则需修改 server-id, master与 slave端 server-id不能一样,slave端无须开启 bin-log功能,代码如下: server-id= 2 slave端/etc/my.cnf完整配置代码如下: [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 skip-external-locking key_buffer_size=256MB max_allowed_packet=1MB table_open_cache=256 sort_buffer_size=1MB read_buffer_size=1MB read_rnd_buffer_size=4MB myisam_sort_buffer_size=64MB thread_cache_size=8 query_cache_size= 16MB thread_concurrency=8 server-id=2 [mysqldump] quick max_allowed_packet=16MB no-auto-rehash [myisamchk] key_buffer_size=128MB sort_buffer_size= 128MB read_buffer=2MB write_buffer=2MB [mysqlhotcopy] interactive- timeout 为slave指定 master IP、用户名、密码、 bin-log文件名( mysql-bin.00028)及position(257), 代码如下: change master to master_host=’192 168.0. 134’, master_use= ‘tongbu’, master_password=’song123’, master_log_ file='mysql - bin.000046’, master_log_pos=774; 如图: 在 slave中启动 slave start,并执行 show slave status\G查看 MySQL.主从状态,代码如下: slave start; show slave status\G 如图

    查看 slave端I/O线程、SQL.线程状态均为Yes,代表 slave已正常连接 master实现同 步,代码如下: slave_IO_ Running:Yes slave_SQL_Running:Yes 执行 Show slave status\G,常见参数含义解析如下: Slave_IO_State: I/O线程连接 master状态 Master_User:用于连接 master的用户 Master_Port_a: master端监听端口 Connect_Retry:主从连接失败,重试时间间隔。 Master_Log_File:I/O线程读取的 master二进制日志文件的名称。 Read_Master_Log_Pos:IO线程已读取的 master二进制日志文件的位置。 Relay_Log_File:SQL线程读取和执行的中继日志文件的名称 Relay_Log_Pos: SQL线程已读取和执行的中继日志文件的位置。 Relay_Master_Log_File:SQL线程执行的 master二进制日志文件的名称 Slave_IO_Running:I/O线程是否被启动并成功地连接到主服务器上。 Slave_SQL_Running:SQL线程是否被启动。 Replicate_Do_DB:指定的同步的数据库列表 Skip_Counter:SQL_SLAVE_SKIP_COUNTER设置的值。 Seconds_Behind_Master:slave端SQL线程和1/O线程之间的时间差距,单位秒,常被用于主从延迟检查方法之一。 (4)进行测试: 在master端创建tongbu数据库和stu表,命令如下,详情如图所示 mysql> create database tongbu character set utf8; Query OK, 1 row affected (0.00 sec)

    mysql> use tongbu; Database changed mysql> create table stu( -> sid int primary key auto_increment, -> snam varchar(20), -> sage int -> )character set utf8; Query OK, 0 rows affected (0.00 sec) 然后在slave库上进行查看,发现进行了随时进行了备份 MySQL.主从架构至此配置成功。 在master服务器stu表中插入两条数据,命令如下,在slave查看是否同步,master上执行详情如图所示。 Slave端执行查询命令,如图所示,表示master端插人的SQL数据已经同步到slave端

    最新回复(0)