mysql master slave 搭建

mysql master slave 搭建

master:192.168.1.113

slave:192.168.1.131

一、配置master

修改mysql.ini

server-id=1#master的标示

log-bin=mysql-bin#slave会基于此log-bin来做replication

binlog-do-db=godhd#用于master-slave的具体数据库

binlog-ignore-db=mysql#忽略的数据库

二、创建远程帐号并授予权限

mysql>grant REPLICATION SLAVE  on *.* to slave@'%' identified by 'slave';

三、查看master信息

mysql>show master stauts;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000017 |     8133 |        |                  |
+------------------+----------+--------------+------------------+

记好file和position

四、配置slave

server-id=2#slave标记

master-host=192.168.1.113#master主机

master-user=slave#访问master的用户名

master-password=slave#访问master的密码

master-port=3306#端口
master-connect-retry=10#重试间隔时间10秒 
replicate-do-db=**** #需要同步的数据库 
log-slave-updates #启用从库日志,这样可以进行链式复制 
read-only=1 #从库是否只读,0表示可读写,1表示只读

五、在slave连接上mysql

mysql> slave stop;(slave 默认可能是开启的)

mysql> change master to master_host='192.168.1.113',master_user='slave',master_password='slave',master_log_file='mysql-bin.000017',master_log_pos=8133

mysql>show slave status\G;

查看slave状态:

slave_io_running:yes

slave_sql_running:yes

这2点状态必须是yes的,否则不能同步

如果状态不对,可查看last_io_running和slave_sql_running报的错误,来找原因

如:last_io_error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it)

意思是slave和master的server_id相同,这是就应该检查下master和slave中server_id的配置,

mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 1     |
+---------------+-------+

发现,mysql并没有从my.ini文件中更新server_id,既然这样就只能手动修改了

mysql> set global server_id=2;  #此处的数值和my.cnf里设置的一样就行

 

mysql>slave start;就可以启动同步了

至此,完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是MySQL MHA环境搭建的步骤: 1.准备基础架构环境,包括Master主机、Slave1从机、Slave2从机(备选主)。 2.在Master主机上配置MySQL主从环境,在Slave1和Slave2上分别配置MySQL从机环境。 3.安装MHA并进行配置,注意配置过程中可能会遇到一些坑,需要仔细检查。 4.配置各服务之间的ssh互认,以实现免登陆认证。 5.安装完成后,进行MHA检查,确保环境搭建成功。 6.进行故障演示,测试MHA的故障转移功能。 以下是具体的操作步骤: 1.在Master主机上配置MySQL主从环境,Slave1和Slave2上分别配置MySQL从机环境。可以参考引用中的相关内容。 2.安装MHA并进行配置。可以参考以下步骤: (1)安装MHA: ```shell yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles perl-Data-Dumper wget https://github.com/yoshinorim/mha4mysql-manager/archive/master.zip unzip master.zip cd mha4mysql-manager-master/ perl Makefile.PL make && make install ``` (2)配置MHA: 在Master主机上创建MHA的配置文件: ```shell mkdir /etc/mha_manager vi /etc/mha_manager.cnf ``` 在配置文件中添加以下内容: ```shell [server default] manager_log=/var/log/masterha/app1.log manager_workdir=/var/log/masterha/app1 remote_workdir=/var/log/masterha/app1 ssh_user=root repl_password=123456 ping_interval=3 ping_type=SELECT master_binlog_dir=/data/mysql/mysql3306/data master_ip_failover_script=/usr/local/bin/master_ip_failover master_ip_online_change_script=/usr/local/bin/master_ip_online_change shutdown_script=/usr/local/bin/power_manager user=root password=123456 [server1] hostname=192.168.1.100 port=3306 candidate_master=1 [server2] hostname=192.168.1.101 port=3306 candidate_master=1 [server3] hostname=192.168.1.102 port=3306 no_master=1 ``` 其中,[server default]是默认配置,[server1]、[server2]、[server3]是各个MySQL实例的配置。 (3)启动MHA: ```shell masterha_manager --conf=/etc/mha_manager.cnf --remove_dead_master_conf --ignore_last_failover ``` 3.配置各服务之间的ssh互认,以实现免登陆认证。可以参考以下步骤: (1)在Master主机上生成ssh密钥: ```shell ssh-keygen -t rsa ``` (2)将Master主机的公钥复制到Slave1和Slave2上: ```shell ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.101 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.102 ``` (3)在Slave1和Slave2上生成ssh密钥,并将公钥复制到Master主机上。 4.安装完成后,进行MHA检查,确保环境搭建成功: ```shell masterha_check_ssh --conf=/etc/mha_manager.cnf masterha_check_repl --conf=/etc/mha_manager.cnf ``` 5.进行故障演示,测试MHA的故障转移功能: (1)在Master主机上停止MySQL服务: ```shell service mysqld stop ``` (2)在MHA Manager主机上执行故障转移: ```shell masterha_master_switch --master_state=alive --conf=/etc/mha_manager.cnf --orig_master_is_new_slave --new_master_host=192.168.1.101 ``` (3)检查故障转移是否成功: ```shell masterha_check_ssh --conf=/etc/mha_manager.cnf masterha_check_repl --conf=/etc/mha_manager.cnf ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值