mysql 主主同步,mysql未找到命令

文章 3年前 (2021) admin
0
mysql 主主同步,mysql未找到命令

Q1:两台阿里云服务器,如何配置keepalived,mysql双主

使用MySQL双主keepalived是一个非常好的解决方案。在MySQL-HA环境下,MySQL是主从关系,保证了两个MySQL数据的一致性。然后用keepalive实现虚拟IP,用keepalive自带的服务监控功能实现MySQL故障时的自动切换。接下来,我将与大家分享即将推出的生产环境中的架构,看看MySQL-HA在这个架构中是如何实现的。环境如下:MySQL-VIP:10 . 10 . 10 . 21 MySQL-master 1:10 . 10 . 17 MySQL-master 2:10 . 10 . 10 . 18 OS版本:Redhat6.2 MySQL版本:mysql-5.1.59Keepalived版本:keepalived-1。MySQL master-MySQL 1的主配置。修改MySQL配置文件。如果两个MySQL想要启用binlog日志功能,打开方法:在MySQL配置文件[MySQLd]中添加log-bin=MySQL-bin选项。两个mysqls的服务器id不能相同。默认情况下,这两个mysqls的服务器ID都是1。Master1可以通过将其中一个修改为2来配置:# vim/etc/my . cnflog-bin=Mysql-bin//打开binlog函数log=/usr/local/Mysql/var/Mysql . log//将打印Mysql server的所有SQL语句-id=1 //Binlog-do-db=mysql //要同步的库的名称自动递增-递增=2 auto-递增-偏移量=2master 2配置:# vim/etc/my . cnflog-bin=1授权用户:在*上创建授权用户授权复制从属。*测试@" 10.10.10。“%”由10.10.10.17上的“123456”标识;在*上设置授权用户授权复制从属。*测试@" 10.10.10。“%”由10.10.10.18服务器上的“123456”标识;3.将10.10.10.17设置为10.10.10.18的主服务器,将10.10.10.17设置为自己的主服务器mysql在10.10.10.18显示主状态;(17服务器配置)1-1-1-1-1-1-1-1。----| mysql-bin . 000027 | 106 | MySQL | |--set中的1行(0.01秒)MySQL将master更改为master_host="10.10.10.17 ",master_user="test ",master_password="123456 ",master _ log _ file=" MySQL-bin . 000027 ",master _ log _ pos=106查询正常,0行受影响(0.05秒)MySQL启动从机;查询正常,0行受影响(0.00秒)mysql显示从属状态\ gslave _ io _ running 3360 yes slave _ SQL _ running 3360 yes \ \如果这两项都是yes,则Master-master配置意味着将10.10.10.18设置为10.10.10.17的主服务器的方法与上述设置一致,只有10.10.10.18作为自己的主服务器MySQL在10.10.10显示主状态(18服务器配置)1------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000027| 106|mysql | |+------------------+----------+--------------+------------------+1 row in set (0.01 sec)MySQL> change master to master_host="10.10.10.18",master_user=’test’,master_password="123456",master_log_file="MySQL-bin.000027",master_log_pos=106;Query OK, 0 rows affected (0.05 sec)MySQL> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave status \GSlave_IO_Running: Yes Slave_SQL_Running: Yes \\如果此2项都为yes,master-master配置即成功测试是否成功:如上述均正确配置,现在在任何一台MySQL上更新数据都会同步到另一台MySQL(仅限mysql库)二、keepalived安装及配置1、10.10.10.17服务器上keepalived安装及配置安装keepalived#tar zxvfkeepalived-1.1.20.tar.gz #cdkeepalived-1.1.20 #./configure--prefix=/usr/local/keepalived--with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.x86_64 #make &&make; install配置keepalived我们自己在新建一个配置文件,默认情况下keepalived启动时会去/etc/keepalived目录下找配置文件#mkdir/etc/keepalived #vi/etc/keepalived/keepalived.conf global_defs { notification_email {}smtp_server 127.0.0.1 (如果本机配置的话) smtp_connect_timeout 30 router_id MySQL-ha }vrrp_instance VI_1{ state BACKUP #两台配置此处均是BACKUP interface p4p1 #注意网卡接口 virtual_router_id 51 priority 100 #优先级,另一台改为90 advert_int 1 nopreempt #不主动抢占资源,只在优先级高的机器上设置即可,优先级低的机器不设置 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.10.10.21 } }virtual_server10.10.10.21 3306 { delay_loop 2 #每个2秒检查一次real_server状态 lb_algo wrr #LVS算法 lb_kind DR #LVS模式 persistence_timeout 60 #会话保持时间 protocol TCP real_server 10.10.10.17 3306 { weight 3 notify_down /usr/local/my/my.sh #检测到服务down后执行的脚本 TCP_CHECK { connect_timeout 10 #连接超时时间 nb_get_retry 3 #重连次数 delay_before_retry 3 #重连间隔时间 connect_port 3306 #健康检查端口 } }编写检测服务down后所要执行的脚本#vi/usr/local/MySQL/bin/MySQL.sh #!/bin/sh pkillkeepalived #chmod +x/usr/local/MySQL/bin/MySQL.sh注:此脚本是上面配置文件notify_down选项所用到的,keepalived使用notify_down选项来检查real_server的服务状态,当发现real_server服务故障时,便触发此脚本;我们可以看到,脚本就一个命令,通过pkill keepalived强制杀死keepalived进程,从而实现了MySQL故障自动转移。另外,我们不用担心两个MySQL会同时提供数据更新操作,因为每台MySQL上的keepalived的配置里面只有本机MySQL的IP+VIP,而不是两台MySQL的IP+VIP启动keepalived#/usr/local/keepalived/sbin/keepalived–D #ps -aux | grepkeepalived测试找一台局域网PC,然后去ping MySQL的VIP,这时候MySQL的VIP是可以ping的通的停止MySQL服务,看keepalived健康检查程序是否会触发我们编写的脚本1、10.10.10.18服务器上keepalived安装及配置安装keepalived#tar zxvfkeepalived-1.1.20.tar.gz #cdkeepalived-1.1.20 #./configure--prefix=/usr/local/keepalived--with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.x86_64 #make &&make; install配置keepalived我们自己在新建一个配置文件,默认情况下keepalived启动时会去/etc/keepalived目录下找配置文件#mkdir/etc/keepalived #vi/etc/keepalived/keepalived.conf global_defs { notification_email {}smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id MySQL-ha }vrrp_instance VI_1{ state BACKUP #两台配置此处均是BACKUP interface p4p1 #注意网卡接口 virtual_router_id 51 priority 90 #优先级,另一台改为90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.10.10.21 } }virtual_server10.10.10.21 3306 { delay_loop 2 #每个2秒检查一次real_server状态 lb_algo wrr #LVS算法 lb_kind DR #LVS模式 persistence_timeout 60 #会话保持时间 protocol TCP real_server 10.10.10.18 3306 { weight 3 notify_down /usr/local/my/my.sh #检测到服务down后执行的脚本 TCP_CHECK { connect_timeout 10 #连接超时时间 nb_get_retry 3 #重连次数 delay_before_retry 3 #重连间隔时间 connect_port 3306 #健康检查端口 } }启动keepalived #/usr/local/keepalived/sbin/keepalived–D #ps -aux | grepkeepalived测试停止MySQL服务,看keepalived健康检查程序是否会触发我们编写的脚本三、测试两台MySQL服务器都要授权允许从远程登录MySQL> grantall privileges on *.* to andyguo@"%" identified by "123456"; Query OK, 0 rowsaffected (0.00 sec) MySQL> flushprivileges; Query OK, 0 rowsaffected (0.00 sec)keepalived故障转移测试:在windows客户端一直去ping VIP,然后关闭10.10.10.17上的keepalived,正常情况下VIP就会切换到10.10.10.18上面去开启10.10.10.17上的keepalived,关闭10.10.10.18上的keepalived,看是否能自动切换,正常情况下VIP又会属于10.10.10.17注:keepalived切换速度还是非常块的,整个切换过程只需1-3秒MySQL故障转移测试:在10.10.10.17上关闭MySQL服务,看VIP是否会切换到10.10.10.18上开启10.10.10.17上的MySQL和keepalived,然后关闭10.10.10.18上的MySQL,看VIP是否会切换到10.10.10.17上如果都没问题,到此整个配置即已完成。备注(在测试的过程中遇到了一些问题,解决方法)Keepalived_healthcheckers:IPVS: Can"t initialize ipvs: Protocol not available起初重装了ipvsadm和keepalived,但故障依旧,随后突然想到是否lvs模块加载异常,于是lsmod|grep ip_vs发现果然没有相应的模块,而正常情况下应该是有的e、手动加载ip_vs模块modprobe ip_vsmodprobe ip_vs_wrrf、重启keepalived服务,故障排除,此时转发正常,从服务器的ip_vs加载正常,主从切换也正常g、将modprobeip_vs、modprobe ip_vs_wrr添加进/etc/rc.local开机自动加载

Q2:有两台服务器,A在阿里云,B在腾讯云,A上有数据库,要在B上搭建网站,怎么才能让B使用A的数据库?

实际上,只需在" DB_HOST"="中添加a的数据库地址,这里是a的数据库地址。

Q3:keepalived做完MySQL双机互备,zabbix挂了...

应该不会影响的啊,你得确认以下几点:keepalived配置文件中,关于VIP的配置应该如下:virtual_server 192.168.1.2 3306 {     #VIP的IP,和监听的端口在/etc/services中应该添加了zabbix_server的端口(客户端加前两条):# cat >> /etc/services <<eofzabbix-agent    10050/tcp                           #ZabbixAgentzabbix-agent    10050/udp                           #Zabbix Agentzabbix-trapper  10051/tcp                            #ZabbixTrapperzabbix-trapper  10051/udp                             #Zabbix Trappereof服务端防火墙开启了10050和10051端口,客户端添加10050端口。检查服务端zabbix_agent的配置文件中,zabbix_server的ip设置错误(看你的提问,很可能就是这里把server的ip设置成了VIP)# vim /usr/local/zabbix/etc/zabbix_agentd.confServer=127.0.0.1   # zabbix server的ipServerActive=127.0.0.1   # zabbix server的ip,主动向zabbix server报数据这样一来,zabbix走的是10050端口,mysql走的是3306端口,应该不会互相影响的。关于keepalived的更多问题,可以百度我的博客“成航先森”寻找答案。

Q4:阿里云服务器支持keepalived 吗

阿里巴巴云官方回复:阿里巴巴云服务器不支持单独购买ip,无法安装keepalived进行负载均衡。如果需要配置负载均衡,可以直接购买slb进行负载均衡配置。

Q5:有两台阿里云服务器,希望在a服务器故障时自动启用b服务器

不是自动启用,这两台都开启着,会自动切换

Q6:我买了两台阿里云ecs服务器,其中一台服务器做了镜像,我想用这个镜像用在另一台服务器上,怎么弄

另一台在管理控制台实例中关机然后选择更多下的更换系统盘,安装镜像选择之前创建的镜像

版权声明:admin 发表于 2021年10月26日 上午1:52。
转载请注明:mysql 主主同步,mysql未找到命令 | 热豆腐网址之家

相关文章