mysql8 rpm安装与集群配置

最近政府项目对安全要求很高,mysql 5.7 版本有漏洞,信息泄露,需要升级
在这里插入图片描述
提供了厂家补丁信息,进去一看,啥也没有。
时间紧,任务重,备份,升级

1.卸载原部署mysql 服务,或者自带mariadb

#找到
rpm -qa  |grep MariaDB
#remove
yum remove mari***

下载rpm包

https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

解压位置随意

  tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

解压后出现一堆rmp包,找自己需要的

  rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm --force --nodeps
  rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm   --force --nodeps
  rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm --force --nodeps
  rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm --force --nodeps
# 不解释了,按照顺序来就行 --force --nodeps 要加上

安装好之后 修改 没有文件就创建一个 /etc/my.conf

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 最好选择
basedir=/data/mysql
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql/mysqldb
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。
max_connect_errors=100
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#
default_authentication_plugin=mysql_native_password
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭

interactive_timeout = 1800
wait_timeout = 1800
#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout = 3600
#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

因为自定义了数据位置 /data/mysql 提前创建好
赋权

  chown mysql:mysql /var/lib/mysql -R
  
  chown mysql:mysql /data/mysql -R
  #不执行初始化不好使

初始化数据库

#执行后可以看到/data/mysql 目录下有文件生成 
 mysqld --initialize --no-defaults 
 #查看初始密码
 cat /var/log/mysqld.log
 #末尾: 以后就是密码

启动服务

#启动服务
systemctl start mysqld 
#开机自启
systemctl enable mysqld 

#登录
 mysql -uroot -p密码
#修改root密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'Root@2022!';
# 创建用户
CREATE USER 'xxx'@'%' IDENTIFIED BY 'xxx@2022!';
#删除用户
drop user 'xxx'@'%';
#创建数据库
create database xxx_db;
#赋权
GRANT ALL ON xxx_db.* TO 'xxx'@'%' WITH GRANT OPTION;

数据库完了,主从配置 修改/etc/my.cnf

主库 在[mysqld] 后添加如下

[mysqld]
log-bin=mysql-bin
server-id=1

重启systemctl restart mysqld
登录创建同步用户

CREATE USER 'xxx'@'从库ip' IDENTIFIED WITH mysql_native_password BY 'xxx@2022!';
GRANT REPLICATION SLAVE ON *.* TO 'xxx'@'从库ip';

查看同步点SHOW MASTER STATUS;

mysql8 rpm安装与集群配置_第1张图片
从库

[mysqld]
server-id=2

重启systemctl restart mysqld

#登录执行
CHANGE MASTER TO
MASTER_HOST='主库ip',
MASTER_USER='xxx',
MASTER_PASSWORD='xxx@2022!',
MASTER_LOG_FILE='截图file值',
MASTER_LOG_POS=截图position值;


#启动同步
start slave;
#查看同步状态
show slave status\G;
#看到两个yes 说明ok

在这里插入图片描述
其他验证可以自行验证,建表,建库,建用户,修改数据 看数据状态

你可能感兴趣的:(mysql,数据库,mysql,服务器)