1、前置工作
首先准备两台可以互相ping通的机器,两台机器可以互为主从,示例:10.210.23.77主服务器
10.20.84.183从服务器
2、安装
在两台机器上各自安装数据
解压MariaDB安装包;
tar zxvf MariaDB.tgz
cd mariadb
安装MariaDB依赖包;
rpm -ivh *.rpm --force --nodeps
启动MariaDB服务
systemctl start mariadb
安全配置
# 启动成功后运行如下命令进行安全配置
mysql_secure_installation
# 开始安全配置
① 输入当前密码,初次安装后是没有密码的,直接回车
② 未root设置密码,输入Y。
③ 设置root密码,输入inf0sec312
④ 确认输入root密码,再次输入inf0sec312。
⑤ 是否移除匿名用户,输入Y。
⑥ 拒绝用户远程登录,输入n。
⑦ 删除test库,输入n。
⑧ 重新加载权限表,输入Y
如下图所示,完成配置。
赋予root用户远程连接权限
# 输入密码登录MariaDB控制台
mysql -u root -p
# 赋予root用户远程连接权限
grant all privileges on *.* to 'root'@'%' identified by 'inf0sec312' with grant option;
# 刷新
flush privileges;
如下图所示,完成root用户远程连接权限配置。
赋予root用户远程连接权限命令中“inf0sec312”为数据库密码,与4中安全配置密码一致。请根据现场配置进行修改。
完成MariaDB安装和配置
注意:这种方式安装的mariadb数据库各种配置文件不在一个地方,分散到/usr/bin/下,/var/lib/mysql/下
3、配置
10.210.23.77主服务配置
[mysqld]
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
log_slave_updates=true
expire_logs_days=7
max_binlog_size=500M
slave_parallel_threads=2
binlog_format=ROW
#复制框架
server_id=1
log_bin=binlog
max_connections=200
10.20.84.183从服务配置
[mysqld]
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
log_slave_updates=true
expire_logs_days=7
max_binlog_size=500M
slave_parallel_threads=2
binlog_format=ROW
#复制框架
server_id=2
log_bin=binlog
max_connections=200
skip-grant-tables代表跳过权限认证可进登录,为了方便脚本安装时加的属性,但是加了这个,对数据库的安全性造成一定的威胁,所以及时禁用
log-error代表mariadb的错误日志文件所在目录
server_id代表每个机器的唯一标识符,切记不可重复!!!
log-bin开启二进制日志文件,binlog是日志文件名
在主服务器上建立帐户并授权slave
create user 'rep'@'%' identified with mysql_native_password by '$mysql_pwd';
grant replication slave on *.* to 'rep'@'%';
flush privileges;
登录主服务器10.210.23.77的mariadb,查询master的状态
配置从服务器 Slave10.20.84.183
change master to master_host='10.210.23.77',master_user='root',master_password='123456',master_log_file='bin-log.000002',master_log_pos=2759;
# ps:10.210.23.77 为主服务器ip
# bin-log.000002 为上面第三点的 File
# 2759为上面第三点的 Position
# 启动从服务器复制功能
start slave;
# 检查从服务器复制功能状态
show slave status\G
看到Slave_IO_Running和Slave_SQL_Running两项值都为yes,则代表配置成功
配置主服务器为从服务器
登录服务器10.20.84.183的mariadb,查询master的状态
配置从服务器Slave10.210.23.77
change master to master_host='10.20.84.183',master_user='root',master_password='123456',master_log_file='bin-log.000002',master_log_pos=2759;
# ps:10.20.84.183 为主服务器ip
# bin-log.000002 为上面第三点的 File
# 2759为上面第三点的 Positionchange master to master_host='10.210.23.77',master_user='root',master_password='123456',master_log_file='bin-log.000002',master_log_pos=2759;
# ps:10.210.23.77 为主服务器ip
# bin-log.000002 为上面第三点的 File
# 2759为上面第三点的 Position
# 启动从服务器复制功能
start slave;
# 检查从服务器复制功能状态
show slave status\G
看到Slave_IO_Running和Slave_SQL_Running两项值都为yes,则代表配置成功
此时,两台机器的互为主从已经配置好
4、测试
在两台机器的数据库上进行insert、update、del操作,可以看到另一台机器的数据库也做了相应改动,则双机热备全部完成