一、查看mariadb的相关包并卸载
1、查看命令
rpm -qa | grep mariadb

2、卸载命令
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
二、安装mysql-8数据库
1、下载安装文件
下载地址:https://downloads.mysql.com/archives/community/
后缀件为:mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz,其他8.0版本也可,更具需要选择,
并将该文件移动到linux中 /usr/local/目录下。

2、解压 .tar.gz 文件
tar -zxvf mysql-8.0.26-el7-x86_64.tar.gz
3、给包重命名为mysql
mv mysql-8.0.26-el7-x86_64 /usr/local/mysql
4、检查mysql组和用户是否存在,如无则创建
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -g mysql mysql

5、进入mysql目录并创建data目录,存放数据用的
[root@ecs-8417-0816894 downloads]# cd /usr/local/mysql
[root@ecs-8417-0816894 mysql]# mkdir data

6、给相关目录mysql和data目录赋读写执行的权限
[root@ecs-8417-0816894 mysql]# chmod -R 777 /usr/local/mysql
[root@ecs-8417-0816894 mysql]# chmod -R 777 /usr/local/mysql/data/

7、将mysql目录的权限授给mysql用户和mysql组
[root@ecs-8417-0816894 mysql]# chown -R mysql:mysql /usr/local/mysql
8、新建mysql配置文件 my.cnf
[root@ecs-8417-0816894 mysql]# vim /etc/my.cnf
将以下文本信息直接粘贴到my.cnf文件中,注意修改目录
[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=/usr/local/mysql# 设置mysql数据库的数据的存放目录datadir=/usr/local/mysql/data# 允许最大连接数max_connections=10000# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统max_connect_errors=10# 服务端使用的字符集默认为UTF8character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB#sql_model 去掉ONLY_FULL_GROUP_BYsql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION#设置MySQL不区分大小写lower_case_table_names=1[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[client]# 设置mysql客户端连接服务端时默认使用的端口port=3306default-character-set=utf8

9、配置好文件,附文件权限
[root@localhost etc]# chmod 644 my.cnf
[root@localhost etc]#
所属组可读可写不可执行、所有者可读不可写不可执行、以其他人可读不可写不可执行

10、初始化mysql,进入mysql 的bin目录下
[root@ecs-8417-0816894 mysql]# cd /usr/local/mysql/bin/
初始化命令会生成随机密码,记住密码
[root@ecs-8417-0816894 bin]# ./mysqld --initialize --console

11、初始化后还要再给 /usr/local/mysql/data/ 授权
[root@localhost bin]# chmod -R 777 /usr/local/mysql/data/
12、启动mysql
[root@ecs-8417-0816894 bin]# cd /usr/local/mysql/support-files/
[root@ecs-8417-0816894 support-files]# ./mysql.server start

13、配置环境变量
[root@localhost init.d]# cp /usr/local/mysql/support-files/mysql.server mysqld
# 使用配置变量重启启
[root@ecs-8417-0816894 support-files]# service mysqld restart
# 重启成功了
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!

14.创建软连接
[root@localhost support-files]# ln -s /usr/local/mysql/bin/mysql /usr/bin
15.登录mysql修改默认密码,创建远程登录
[root@localhost mysql]# mysql -uroot -p#修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';#选择库use mysql#修改成远程登录用户:update user set host='%' where user = 'root';#授权:grant all privileges on *.* to 'root'@'%';#刷新权限:flush privileges;
16.防火墙的设置
#查看防火墙状态firewall-cmd --state#如果没有开启,则开启systemctl start firewalld.service#查看监听的端口:firewall-cmd --list-port#添加3306端口监听firewall-cmd --zone=public --add-port=3306/tcp --permanent#刷新防火墙设置firewall-cmd --reload
17、加入开机启动
[root@localhost bin]# chkconfig --add mysqld
[root@localhost bin]# chkconfig mysqld on
至此,完成安装。
三、mysql 8 主从复制,本文基于日志(binlog)的主从复制方式。
MySQL 主从复制的原理
Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件, 这些记录叫做二进制日志事件(binary log events);
Slave 通过 I/O 线程读取 Master 中的二进制日志事件(binary log events)并写入到它的中继日志(relay log);
Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完 成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。
主从配置需要注意的点
准备两台服务器
主节点(Master):10.10.5.114
从节点(Slave):10.10.5115
从节点(Slave):10.10.511
以下步骤, 为单向主从搭建
-------------------------------开始单向主从搭建--------------------------
1、修改主节点(Master)配置my.cnf
2、修改从节点(Slave)配置my.cnf
在主节点创建一个用户repl,用于从节点链接主节点时使用
授权
刷新授权表信息
4、获取主节点当前binary log文件名和位置(position)
5、在从(Slave)节点上设置主节点参数
mysql> CHANGE MASTER TO MASTER_HOST='10.10.5.114',MASTER_USER='repl',MASTER_PASSWORD='Ron_master_1',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS= 2247;
6、在从(Slave)节点中查看主从同步状态

7、分别查看主从设备的server_id
注意:不能一样,设置成和 /ect/my.cnf 里一样
修改server_id
8、在从(Slave)节点中开启主从同步并查看装态
9、测试
1、主机上创建库
2、从机上查看,发现从机也有了,说明成功了,当然可以测试创建表,插入数据,删除等
至此主从数据库搭建完毕




