2.将全备拷贝给从机,并在从机完全恢复,保证主从数据的一致性
3.授权从机可以从主机复制数据
mysql> grant replication slave on *.* to slave@'192.168.10.201' identified by '123';4.查看主服务器日志状态:
mysql> show master status\G*************************** 1. row *************************** File: master.000001 Position: 120 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)从服务器
1.完全恢复[root@localhost mysql]# mysql -u root < /root/all.sql2.测试登陆主服务器
[root@localhost mysql]# mysql -u slave -p123 -h 192.168.10.2003.配置文件
[root@localhost data]# cat /etc/my.cnf [mysqld]server-id=24.配置连接服务器
mysql> change master to -> master_host='192.168.10.200', -> master_user='slave', -> master_password='123', -> master_log_file='master.000001', -> master_log_pos=120;mysql> start slave;mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: Yes调换两台主机的身份再做一次
从服务器:开启binlog日志:[root@localhost data]# cat /etc/my.cnf [mysqld]server-id=2log-bin=slavelog-bin-index=slave给主服务器授权
mysql> grant replication slave on *.* to master@'192.168.10.200' identified by '123' ; 主服务器:mysql> change master to -> master_host='192.168.10.201', -> master_user='master', -> master_password='123', -> master_log_file='slave.000001', -> master_log_pos=333;mysql> start slave;
mysql> show slave status\G=====================================================
在mysql互主的基础上配置keepalived(两台mysql都要安装)root@localhost smb]# tar -xvf keepalived-1.2.24.tar.gz -C /usr/local/src/[root@localhost ~]# cd /usr/local/src/keepalived-1.2.24/[root@localhost keepalived-1.2.24]#./configure --prefix=/ --mandir=/usr/local/share/man/[root@localhost keepalived-1.2.24]# make[root@localhost keepalived-1.2.24]# make install[root@localhost keepalived-1.2.24]# cd /etc/keepalived/! Configuration File for keepalivedglobal_defs { #全局定义主要设置 keepalived 的通知机制和标识
notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id test}vrrp_instance VI_1 { #VRRP(虚拟路由冗余协议)实例配置
state MASTER #另一个 Director 标记为 BACKUP!!! interface eth0 #实例绑定的网卡 virtual_router_id 51 #VRID 虚拟路由标识 00-00-5e-00-01-{VRID} priority 150 #优先级高为master,master 至少要高于 backup 50 !!! advert_int 1 #检查间隔 authentication { auth_type PASS 验证:主备之间做身份验证 主备之间一定一致 auth_pass 1111 } virtual_ipaddress { 浮动ip 192.168.10.222/24 }}==================================================
virtual_server 192.168.0.200 3306 {
delay_loop 2 #每个2秒检查一次real_server状态 lb_algo wrr #LVS算法 lb_kind DR #LVS模式 persistence_timeout 60 #会话保持时间 protocol TCP real_server 192.168.0.219 3306 { weight 3 notify_down /usr/local/MySQL/bin/MySQL.sh #检测到服务down后执行的脚本 TCP_CHECK { connect_timeout 10 #连接超时时间 nb_get_retry 3 #重连次数 delay_before_retry 3 #重连间隔时间 connect_port 3306 #健康检查端口 } } } ====================================================
[root@localhost keepalived]# scp keepalived.conf 192.168.10.201:/etc/keepalived/
拷贝后,修改配置文件 state BACKUP priority 1002台mysql上,启动Keepalived服务
[root@localhost keepalived]# service keepalived start 测试2台mysql的故障转移==================================
MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (111)
测试代码:require 'mysql2'
client = Mysql2::Client.new(:host=>"192.168.10.210",:username=>'root',:password=>"root")puts results = client.query("show databases;")谷歌了一下之后,原来是在mysql的my.cnf中有下面一段代码:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1 #这里默认监听本地localhost如果要让mysql监听到其他的地址,可以将bind-address = 127.0.0.1注释掉。
或者将bind-address = 0.0.0.0监听所有的地址屏蔽掉之后再次运行代码又出现:Host '192.168.10.83' is not allowed to connect to this MySQL server
这里写图片描述 解决方法: 如果想让192.168.10.83能够连接到本地的这个数据库,要让数据库给其分配权限,登录mysql,执行:(username 和 password是登录mysql的用户名和密码)GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.10.83' IDENTIFIED BY 'password' WITH GRANT OPTION;
如果要想所有的外部ip地址都能够访问使用mysql,可以执行下面:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
之后执行刷新数据库:
flush privileges;
如果要查看用户的权限,可以执行:
> show grants for 'root'@192.168.10.83
这里写图片描述