阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 14.04下搭建MySQL主从服务器

94次阅读
没有评论

共计 2375 个字符,预计需要花费 6 分钟才能阅读完成。

MySQL 的主从复制是异步的,分 master/slave,在 master 端存在一个 IO 线程,而在 slave 下存在 IO 及 Sql 线程。

搭建环境最重要的地方在于将 mysql 的二进制日志功能开启,我在搭的过程中有个细节没注意,坑了我好久。

环境:

我的两台虚拟机上网方式都是采用桥接模式,不推荐 nat. 首先对两台虚拟机设置固定 ip 地址,和你的物理机的 ip 地址在一个段内,这样你的虚拟机就很类似一台局域网的物理机工作了。

————————————– 分割线 ————————————–

Ubuntu 下 Nginx 做负载实现高性能 WEB 服务器 5 —MySQL 主主同步 http://www.linuxidc.com/Linux/2012-06/61687p5.htm

生产环境 MySQL 主主同步主键冲突处理 http://www.linuxidc.com/Linux/2013-07/86890.htm

MySQL 主从失败 错误 Got fatal error 1236 http://www.linuxidc.com/Linux/2012-02/54729.htm

MySQL 主从复制,单台服务器上实施 http://www.linuxidc.com/Linux/2013-03/81913.htm

————————————– 分割线 ————————————–

设置固定 ip 地址:

$ sudo vim /etc/network/interfaces

如下:

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 192.168.1.252

netmask 255.255.255.0

gateway 192.168.1.1

$ sudo /etc/init.d/networking restart

我的虚拟机地址各设为:192.168.1.251  192.168.1.252  网关 IP:192.168.1.1

设置完后,首先在虚拟机中互 ping,必须保证能通。

环境准备好后,可以开始了,我没有采取 rpm 方式,ubuntu 下直接在线安装 mysql 非常方便的,省去了很多步骤。

$ sudo apt-get install mysql-server

默认安装完自动开启的,所以用 netstat -tap|grep mysql 看看是不是 mysql 服务存在了

之后查询下 mysql 运行状态,service mysql status, 同样,还有其他命令,service mysql                  start/stop/restart.

如果出现了以下信息,则代表成功了。

mysql start/running, process 1199

在登陆前先到 /etc/mysql/my.cnf 下 将 bind-address 注释掉,因为默认只能本机访问。

登陆 mysql

mysql -u root -p

grant replication slave,reload,super on *.* to slave @192.168.1.152 identified by ‘1234’

然后在另一台 Ubuntu 下远程测试下

mysql -u slave -h 192.168.1.151 -p

前期工作准备好了,现在就开始配置:

在 master 192.168.1.251 的机子上对 my.cnf 修改,切记以下配置信息一定要加到【mysqld】模块中,放在文件其他位置会导致 master 配置失败。

server-id=1

log_bin=/var/log/mysql/mysql-bin.log

binlog_do_db=student

binlog_ignore_db=mysql

重启下 mysql

sudo  /etc/init.d/mysql restart

如果在重启过程中 failed,建议先看下 my.cnf 的 log-error 对应得错误日志文件位置,然后 cat 看下报错信息

之后进入 master 的 mysql,首先看下二进制功能是否 on.

show variables like ‘log%’

如果为 off 代表没开启,则还是返回检查下 my.cnf 文件,是否放在 [mysqld] 那块中等。文件路径是否对了

show master status; 则能看到对应得 file position 信息,这些在从机设置的时候要用到。

最后到 salve 192.168.1.252 的 /etc/mysql/my.cnf 下配置:

server-id=2

log_bin=/var/log/mysql/mysql-bin.log

replicate_do_db=student

重启下 mysql

sudo  /etc/init.d/mysql restart

slave 进入 mysql:

stop slave

然后设置从 master 复制日志配置

change master to master_host=’192.168.1.151′ ,master_user=’slave’,master_password=’1234′,

master_log_file=’log.000004′,master_log_pos=94;

log_file log_pos 则是在 master 下 show master status 看到的 file position 信息。

start slave;

show slave status\G

在出现的信息中找到 Slave_IO_Running/Slave_SQL_Running,都为 YES 则成功了。

如果出现了 NO,则还是查看 log-error 日志文件,会比较清晰的描述出来的。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2375字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中