由于不能保证服务器之前是否安装过Mysql,以及安装版本是否能满足要求需要对目标服务器进行环境检查。
rpm –qa | grep mysql
注意使用rpm命令时,参数要区分大小写。
目标服务器上存在Mysql数据库,所以需要先删除目标服务器上的MySQL服务。
执行:yum -y remove mysql- * //删除原有服务,并相对应的删除某些关联包。
删除完成会自动退出到命令行状态。
使用上传工具将目标程序包上载到目标服务器,开始执行安装。
至此,Mysql已经安装到系统之中。
备注:默认口令文件默认会在root家目录下生成,是个隐藏文件,注意文件名前面的点.。
出现mysql> 证明登录成功。
备注:第一次使用默认密码登录需要修改登录密码,否则会出现如下提示。
修改登录密码:
修改密码完成,可以退出,使用新密码登录,测试是否修改成功。
退出MYSQL数据库使用exit命令
说明:Mysql默认不允许远程访问,需要手工配置目标服务允许远程访问。
别忘记刷新
备注:由于命令特殊请复制使用:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
备注:默认安装的MySQL会在/usr/my.cnf 有配置文件,我们需要复制到/etc下使用。怎么复制此处不做说明。
说明:Mysql配置文件的读取顺序—/etc/my.cnf /etc/mysql/my.cnf /usr/my.cnf ~/.my.cn 后面文件如果存在,且和之前文件存在相同配置,后面配置的属性值会覆盖前面文件的值。
Host1:
[mysqld]
datadir = /var/lib/mysql
port = 13306
user=mysql
socket = /var/lib/mysql/mysql.sock
lower_case_table_names=1 #不区分大小写
max_connections=1000 #最大连接数
event_scheduler=1 #打开事件调度器
skip-name-resolve #禁止MySQL对外部连接进行DNS解析
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
max_allowed_packet = 30M #blob字符长度过时大容易报错,本项目设置30M即可
wait_timeout=2147483 #自动断开连接的时长,此值为最大值,约24.85天
interactive_timeout=2147483 #自动断开连接的时长
log-bin
expire_logs_day=5
Host2:
[mysqld]
datadir = /var/lib/mysql
port = 13306
user=mysql
socket = /var/lib/mysql/mysql.sock
lower_case_table_names=1
max_connections=1000
event_scheduler=1
skip-name-resolve
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
max_allowed_packet = 30M #blob字符长度过大时容易报错,本项目设置30M即可
wait_timeout=2147483 #自动断开连接的时长,此值为最大值,约24.85天
interactive_timeout=2147483 #自动断开连接的时长
log-bin
expire_logs_day=5
重启Mysql服务
启动如果出现错误请检查配置文件。
至此,单机版Mysql配置完成,并可以使用。
CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
grant replication slave, file, select on *.* to 'repl'@'%' ;
flush PRIVILEGES;
Host2与Host1配置方式一样不再做陈述。
打开/etc/my.cnf文件添加如下内容:
HOST1:
binlog_format=mixed
server-id=1 #可任意设置,与其他服务器不同即可
binlog_do_db=sgmst_dky #同步的数据库,可不写
binlog_ignore_db=information_schema #不需要同步的数据库,可不写
binlog_ignore_db=performance_schema
binlog_ignore_db=mysql
auto-increment-increment = 2
auto-increment-offset = 1
Host2:
binlog_format=mixed
server-id=2 #可任意设置,与其他服务器不同即可
binlog_do_db=sgmst_dky #同步的数据库,可不写
binlog_ignore_db=information_schema #不需要同步的数据库,可不写
binlog_ignore_db=performance_schema
binlog_ignore_db=mysql
auto-increment-increment = 2
auto-increment-offset = 2
说明:两台服务器均为新建立,且无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制起始位置即可。否则,需要先备份主库,在备库进行恢复,从而保持数据一致,然后再指向master。
Host1:配置Host2的信息。
CHANGE MASTER TO
-> MASTER_USER='repl',
-> MASTER_HOST='192.168.179.110',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=120;
Host2:配置Host1的信息
CHANGE MASTER TO
-> MASTER_USER='repl',
-> MASTER_HOST='192.168.179.111',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=120;
标识位置如果如图所示,证明配置成功。
db1创建表,看db2 是否有相同表生成;
在db2插入数据,看数据是否同步到db1。
建议上传到/opt文件夹下。
tar zxvf keepalived-1.2.18.tar.gz
:进入解压的文件夹
环境检查
出现如下截图证明完成
编译完后如下图所示
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/:启动脚本转移到系统目录
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ :配置文件转移到系统目录
mkdir /etc/keepalived :创建配置文件存放目录
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ :配置文件转移到系统目录下
cp /usr/local/sbin/keepalived /usr/sbin :脚本转移到系统目录
chkconfig --add keepalived :添加成开启自启动服务
chkconfig --level 345 keepalived on :设置在启动级别345上开启
打开配置文件
Vim /etc/keepalived/ keepalived.conf
添加如下配置文件
注意:Keepalived服务启动时不会检查配置文件是否存在语法错误,所以务必检查好配置文件的正确性。
! Configuration File for keepalived
global_defs {
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id nyw-db2 #hostname
}
vrrp_instance VI_1 {
state BACKUP #
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.25.202
}
}
virtual_server 192.168.25.202 13306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.25.201 13306 {
weight 3
notify_down /usr/local/script/mysql.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 13306
}
}
}
说明:为防止master1宕机恢复正常后于master2进行vip的争执接管,这里我们使用的conf文件中状态为backup