Ubuntu 安装 Mysql 主从服务器

本文介绍了Mysql主从服务器的配置步骤,包括解决的问题、工作原理、安装配置过程及测试方法,帮助读者掌握Mysql主从配置的技术要点。

理解Mysql主从服务器

主从服务器解决了4个问题:

  1. 数据分布
  2. 负载平衡(load balancing)
  3. 备份
  4. 高可用性(high availability)和容错

工作原理

从高层来看,主从服务器复制分成三步:
1. master将改变记录到二进制日志(binary log)中,这些记录叫做二进制日志事件,binary log events
2. slave将master的binary log events 拷贝到它的中继日志relay log中
3. slave的sql thread读取relay log的数据并将数据写入到自己的数据库中

如图:

这里写图片描述

安装Mysql

> sudo apt-get install mysql-server

配置Mysql

主Mysql服务器192.168.33.11。从Mysql服务器192.168.33.12。

配置主服务器

> sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
======
#bind-address          = 127.0.0.1

server-id               = 1
log_bin                 = /var/log/mysql/mysql-master-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
binlog_ignore_db        = mysql
======

配置从服务器账户和权限

登录主服务器MySQL创建从服务器需要的账户和权限。

> mysql -u root -p

mysql> grant replication slave on *.* to 'username'@'192.168.33.%' identified by 'password';
mysql> flush privileges;

> sudo service mysql restart

note:192.168.33.%通配符,表示0-255的IP都可访问主服务器

查看主服务器状态

mysql> show master status;

配置从服务器

> sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 
======
server-id               = 2
relay_log               = /var/log/mysql/mysql-slave-relay.log
read_only               = 1
log_slave_updates       = 1
======

> sudo service mysql restart
> mysql -u root -p

mysql> change master to
    -> master_host='192.168.33.11',
    -> master_port=3306,
    -> master_user='username',
    -> master_password='password',
    -> master_log_file='mysql-master-bin.000001',
    -> master_log_pos=154;

注:master_log_file和master_log_pos可以通过在主服务器使用 show master status; 获得。

启动从服务器

mysql> start slave;
mysql> show slave status \G;

注:启动后主要确认Slave_IO_Running和Slave_SQL_Running是Yes状态。

测试主从服务器

登录到主Mysql服务器

mysql> create database zztest;
mysql> use zztest;
mysql> create table test (name varchar(100));

mysql> insert into test(name) values("zhe");
mysql> insert into test(name) values("xiao");
mysql> insert into test(name) values("zhexiao");

登录到从Mysql服务器

mysql> show databases;
mysql> use zztest;
mysql> show tables;
mysql> select * from test;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值