linux安装MySQL数据库
- 1.mysql数据库安装
- 1.1.安装环境
- 1.2.安装部署
- 2.mysql数据库主备实现
- 2.1.主备配置
- 2.1.1.前置环境准备
- 2.1.2.master数据库服务器配置
- 2.1.3.slave数据库服务器配置
- 2.2.主备故障切换
- 3.mysql数据库主主实现
1.mysql数据库安装
1.1.安装环境
操作系统版本:CentOS-stream9
数据库版本:mysql-8.0.4
服务名称 | 服务器IP |
---|---|
mysql-master | 192.168.6.137 |
[root@mysql-master ~]# ip a
关闭安全限制
[root@mysql-master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@mysql-master ~]# setenforce 0
[root@mysql-master ~]# systemctl stop firewalld
[root@mysql-master ~]# systemctl disable firewalld
1.2.安装部署
安装yum包
[root@mysql-master ~]# yum install epel-release -y
安装数据库所需依赖环境
[root@mysql-master ~]# yum install pv gcc libxml2 libxml2-devel net-snmp net-snmp-devel libevent libevent-devel curl curl-devel java-devel yum-utils -y
安装 REMI 软件仓库的配置文件
[root@mysql-master ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
从 MySQL 官方软件仓库下载 MySQL 8.0 社区版的软件仓库配置文件
[root@mysql-master ~]# wget https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm
安装MySQL 8.0 社区版的软件仓库配置文件
[root@mysql-master ~]# rpm -Uvh mysql80-community-release-el9-1.noarch.rpm
安装 MySQL 社区版的开发库
[root@mysql-master ~]# yum install mysql-community-devel --nogpgcheck -y
安装 MySQL 社区版的服务器软件
[root@mysql-master ~]# yum install mysql-community-server --nogpgcheck -y
启动数据库
[root@mysql-master ~]# systemctl start mysqld
[root@mysql-master ~]# systemctl enable mysqld
查看数据库初始密码
[root@mysql-master ~]# cat /var/log/mysqld.log | grep password
设置数据库远程登陆
[root@mysql-master ~]# mysql> use mysql;
[root@mysql-master ~]# mysql> update user set Host='%' where User='root';
[root@mysql-master ~]# mysql> flush privileges;
更新root密码
[root@mysql-master ~]# mysql> alter user 'root'@'localhost' identified by 'Admin@123321';
[root@mysql-master ~]# mysql> flush privileges;
2.mysql数据库主备实现
2.1.主备配置
2.1.1.前置环境准备
服务名称 | 服务器IP | 角色 | 数据库版本 |
---|---|---|---|
mysql-01 | 192.168.6.136 | master | mysql-8.0.4 |
mysql-02 | 192.168.6.135 | slave | mysql-8.0.4 |
1、确保2台数据库之间的网络是互通的
2、配置期间不能有数据写入
2.1.2.master数据库服务器配置
编辑数据库配置文件
vi /etc/my.cnfcat >> /etc/my.cnf <<EOF
#服务器 id,随意,但要唯一
server-id = 1
#二进制文件存放路径
log-bin = mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
EOF
创建同步用户
use mysql;
#创建用户
create user 'user_sync'@'%' identified by 'mypassword';
#授权账号复制权限
grant replication slave on *.* to 'user_sync'@'%';
#刷新配置
FLUSH PRIVILEGES;
输出File 和 Position 值
show master status;
#记下输出中的 File 和 Position 值,后续在从库上使用
| mysql-bin.000001 | 157 |
2.1.3.slave数据库服务器配置
编辑数据库配置文件
cat >>/etc/my.cnf <<EOFserver-id = 2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin
#不同步相关的库
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
EOF
编辑同步数据库指向
stop slave;
change master tomaster_host = '192.168.6.136',master_user = 'user_sync',master_password = 'mypassword',#主服务器数据库上的file值(不能有空格)master_log_file = 'mysql-bin.000001',#主服务器数据库的Position值master_log_pos = 157,get_master_public_key=1;start slave;
显示同步情况
show slave status\G
当Slave_IO_Running和Slave_SQL_Running均为Yes时,代表正在保持同步