MySQL两主一从服务器搭建

MySQL两主一从服务器搭建

配置两个主服务器

1.修改两个主服务器配置文件

vim /etc/my.cnf
log-bin=mysql-bin #开启二进制日志
server-id=id号

service mysqld start  #开启mysql服务

2.两个主服务器开启授权

mysql> grant replication slave on *.* to '用户'@'%' identified by '密码'; #创建授权用户

mysql> show master status;#查看binlog文件
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      310 |              |                  | #连接从库所需要的信息
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

配置从服务器

这个配置失C6yum安装,源码安装配置一样,配置到相应的路径下即可

注意:这个服务器不需要开启

1.修改从服务器配置文件

vim /etc/my.cnf
[mysqld_multi]  #添加次模块
mysqld=/usr/bin/mysqld_safe  #源码安装注意文件路径
mysqladmin=/usr/bin/mysqladmin
log=/tmp/multi.log

[mysqld11] #这个数字随便写 添加主一服务器配置
port=3306 #设置子库端口,不能相同
pid-file=/var/lib/mysqla/mysqld.pid  #源码安装注意文件路径
datadir=/var/lib/mysqla
socket=/var/lib/mysqla/mysql.sock
server-id=xx 
user=mysql


[mysqld12]  #这个数字随便写 添加主一服务器配置
port=3307  #设置子库端口
pid-file=/var/lib/mysqlb/mysqld.pid   #源码安装注意文件路径
datadir=/var/lib/mysqlb
socket=/var/lib/mysqlb/mysql.sock
server-id=xx
user=mysql    

3.从服务器初始化

mysql_install_db --datadir=/var/lib/mysqla --user=mysql  #两个mysql子库初始化
mysql_install_db --datadir=/var/lib/mysqlb --user=mysql  #5.6版本使用

mysqld --initialize-insecure --datadir=/var/lib/mysqla --user=mysql #初始化,此时初始化密码为空
mysqld --initialize-insecure --datadir=/var/lib/mysqla --user=mysql   #5.7版本使用

4.目录授权

chown -R mysql.mysql /var/lib/mysqla/ 
chown -R mysql.mysql /var/lib/mysqlb/ 

5.开启两个子库

mysqld_multi --defaults-file=/etc/my.cnf start 11  #数字11是从配置文件配置的[mysql11],这个11
mysqld_multi --defaults-file=/etc/my.cnf start 12

6.从服务器登陆子库

mysql -P 3306 -S /var/lib/mysqla/mysql.sock #C6中正常进入子库没有问题
#C7中无法登录子库,只能在安全模式登陆子库,还没找到解决方法

7.子库连接主库

mysql> change master to master_host='10.0.0.143',master_user='laow',master_password='456',master_log_file='mysql.bin.000001'
,master_log_pos=1298;

mysql> show slave status\G; #查看主从是否正常连接
Slave_IO_Running: Yes  #这连个选项都是Yes,则同步成功,否则失败,这项如果是No,则表示I/O线程开启失败
Slave_SQL_Running: Yes #这项如果是No,则表示SQL数据回访线程开启失败

start slave; #开启从库
stop slave #关闭从库

问题

在执行完start slave后

发现Slave_IO_Running: Connecting

解决方法:max_allowed_packet
mysql> set global max_allowed_packet=16384000;(16M)#这个选项容量太小,需要增大
vim /etc/my.cnf 修改:max_allowed_packet=16M  #这两种设置都可以
#在查看连接状态
mysql> show slave status\G;
 Slave_IO_Running: Yes #连接成功了
 Slave_SQL_Running: Yes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值