Mysql8 部署(Anolis OS8.6版本以上)

主从配置操作步骤摘要:

Master 上的配置
1.安装数据库;
2.修改数据库配置文件, 指明 server_id, 开启二进制日志(log-bin);
3.启动数据库, 查看当前是哪个日志, position 号是多少;
4.登录数据库, 授权数据复制用户(IP 地址为从机 IP 地址, 如果是双向主从, 这里的还需要授权本机的 IP 地址,
  此时自己的 IP 地址就是从 IP 地址);
5.备份数据库(记得加锁和解锁);
6.传送备份数据到 Slave 上;
7.启动数据库;

#以下步骤, 为单向主从搭建成功, 想搭建双向主从需要的步骤:
1.登录数据库, 指定 Master 的地址、 用户、 密码等信息(此步仅双向主从时需要);
2.开启同步, 查看状态;
------------------------------------------------------------------------------------------
Slave 上的配置
1.安装数据库;
2.修改数据库配置文件, 指明 server_id(如果是搭建双向主从的话, 也要开启二进制 日志 log-bin);
3.启动数据库, 还原备份;
4.查看当前是哪个日志, position 号是多少(单向主从此步不需要, 双向主从需要);
5.指定 Master 的地址、 用户、 密码等信息;
6.开启同步, 查看状态。

 1.执行dnf install mysql-server

yum install mysql-server -y

 编辑配置文件vi /etc/my.cnf,参考如下配置:

[mysqld]
port = 3306
basedir = /var/lib/mysql  #根据主机磁盘情况,自行设定
datadir = /var/lib/mysql  #根据主机磁盘情况,自行设定
pid-file = /run/mysqld/mysqld.pid
socket = /var/lib/mysql/mysql.sock

log-bin=mysql-bin

secure-file-priv= /var/lib/mysql-files
lower_case_table_names = 1 #大小写设置,系统变量lower_case_table_names有三个值:分别是0、1、2
character-set-server=utf8mb4
max_allowed_packet=100M #最大包大小
innodb_log_file_size = 512M #日志大小
innodb_strict_mode = 0 #关闭严格模式
log_bin_trust_function_creators=1 #允许函数创建

collation-server=utf8mb4_unicode_ci
max_connections=1500
max_connect_errors=100
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password #密码验证方式
wait_timeout = 1800
interactive_timeout = 1800
#lock_wait_timeout = 3600
#tmp_table_size = 64M
#max_heap_table_size = 64M
#sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
sql_mode=NO_ENGINE_SUBSTITUTION
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1

# 不同步哪些数据库,自行配置
#binlog-ignore-db = mysql
#binlog-ignore-db = test
#binlog-ignore-db = information_schema

# 只同步哪些数据库,除此之外,其他不同步,自行配置
#binlog-do-db = game

[mysql]
default-character-set=utf8mb4

[client]
port=3306
default-character-set=utf8mb4

 2.停止mysql,并初始化数据库,并查看初始默认密码,如图:

systemctl stop  mysqld
#删除默认初始安装存在的文件
rm -rf  /var/lib/mysql/*  #将在下一步操作重新根据自定义配置生成初始数据
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql  #见图三
systemctl start  mysqld
systemctl status  mysqld

 3.将MYSQL服务加入开机启动

systemctl enable mysqld

4.更改数据库的root本地密码,并创建业务用户及设置密码,如下图:

#新安装MYSQL,使用ROOT用户登陆,密码见图三
mysql -uroot -p
#将123456 替换成自己的密码,此为本地用户,只能修改密码
alter user 'root'@'localhost' identified by '123456';        #此处localhost不能修改,否则会报错
#刷新权限表
flush privileges;
#创建业务上自行要用的数据库用户,并设置密码
create user 'test'@'%' identified by '123456';                #test替换为业务用户,123456替换自行设定的密码
#对test用户进行连接授权,%更换为需要连接的主机IP或者网段如:192.168.0.0
grant all privileges on *.* to 'test'@'%' with grant option;  #此处*.*可根据情况设置,尽量授权最小化
#再次刷新权限表
flush privileges;

图一:
 


图二:


5.登陆mysql验证,如图三:
图三:


6.创建用于复制操作的用户
在主节点创建一个用户,用于从节点链接主节点时使用。注意user是主服务器的用户,而10.xxx.xxx.xxx指的是从数据库的服务器IP,意思就是让从服务器有访问的权限

#限制访问来源的CIDR,如:10.xxx.xxx.xxx
CREATE USER 'user'@'10.xxx.xxx.xxx' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'user'@'10.xxx.xxx.xxx';
#刷新授权表信息
flush privileges;

7.获取主节点当前binary log文件名和位置(position),如图四:
图四:


8.在从(Slave)节点上设置主节点参数

CHANGE MASTER TO MASTER_HOST='10.xxx.xxx.xxx', -- 主服务器IP
MASTER_USER='epel', -- 主服务器用户
MASTER_PASSWORD='123456', -- 主服务器用户密码
MASTER_LOG_FILE='binlog.000006', -- 主服务器
MASTER_PORT=12345, -- 端口号默认3306
MASTER_LOG_POS=856; --  位置

9.查看(Slave)主从同步状态

show slave status\G;

10.开启主从同步

start slave;

11.再次查看主从同步状态

show slave status\G;

Docker/Containerd Mysql8.0.23 部署

1.Mysql配置文件同手动部署,可直接复制
2.拉取mysql8容器镜像

docker pull cmc-tcr.tencentcloudcr.com/ops/mysql:8.0

3.启动容器,运行MYSQL8

docker run -d -p 3306:3306  --restart=always --privileged=true  \
-v /数据库服务器目录/data:/var/lib/mysql \
-v /数据库服务器目录/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD='替换为数据库连接密码' \
--name mysql8.0 mysql:8.0 \
--lower_case_table_names=1 \  #忽略大小写
--default_authentication_plugin=mysql_native_password #密码验证方式

4.登陆数据库进行后续主从配置(参照手动配置)


Mysql5.7 部署(Anolis OS8.6)

⭐1. 添加 MySQL 官方Yum 存储库,选择并下载发布包

Index of /232905/yum/mysql-5.7-community/el

#MYSQL官方下载地址:
#https://dev.mysql.com/downloads/repo/yum/
wget https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
rpm -ivh mysql80-community-release-el7-7.noarch.rpm

⭐2.选择MySQL安装版本

查看版本库(对于启用 dnf 的系统, 将命令中的 yum替换为dnf,命令如下:)

dnf repolist all | grep mysql

yum repolist all | grep mysql
⭐3.修改默认安装mysql80为mysql57,禁用mysql80

修改方式如下

#yum修改方式,如图
yum  install -y yum-utils
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

#dnf修改方式,如图
sudo dnf config-manager --disable mysql80-community
sudo dnf config-manager --enable mysql57-community


此时MySQL已由默认安装80更改为57,如图:

⭐4.禁用默认 MySQL 模块

(仅限 EL8 系统)基于 EL8 的系统(例如 RHEL8 和 Oracle Linux 8)包含默认启用的 MySQL 模块。除非禁用此模块,否则它会屏蔽 MySQL 存储库提供的包。要禁用包含的模块并使 MySQL 存储库包可见,请使用以下命令(对于启用 dnf 的系统, 将命令中的 yum替换为dnf)

sudo yum module disable mysql

sudo dnf module disable mysql

⭐5.安装MySQL57

sudo yum install -y mysql-community-server mysql-community-client

⭐6.配置MySQL
使用文档库中的MySQL 5.7配置文件,注意read_only参数默认设置为1,启动后续设置为0或默认设置成0。

安装完成并启动服务后在/var/log/mysqld.log文件中生成了一个随机的默认密码,使用以下命令查看默认的登录密码,首次登陆后请修改密码。

more /var/log/mysqld.log

more /var/log/mysqld.log|grep password|awk -F'localhost:' '{print $NF}'

7.修改默认配置,并启动MySQL

⭐⭐⭐⭐⭐MySQL yum安装默认配置文件路径为/etc/my.cnf,并修改数据库存储目录。

[mysqld]
#Server
port = 3306
skip-name-resolve
lower_case_table_names = 1
max_connections = 3000
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 256M
table_open_cache = 256
sort_buffer_size = 2M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 300
query_cache_size= 16M
innodb_file_format = Barracuda
innodb_file_format_check = ON
innodb_default_row_format=dynamic

character-set-server = utf8
init_connect = 'SET NAMES utf8'

###注意更换data目录###

datadir = /data/mysql
socket = /var/lib/mysql/mysql.sock

read_only = 1
default-storage-engine = InnoDB
innodb_buffer_pool_size = 2G
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_large_prefix = 1
innodb_file_format = BARRACUDA
log-bin-trust-function-creators = 1

#REPLICATION
slave_net_timeout = 30

#注意更换主从同步的server-id,注意唯一

server-id = 2

log-bin = mysql-bin
binlog_format = ROW
replicate-wild-ignore-table = mysql.%
auto-increment-increment = 4
auto-increment-offset = 2
master_info_repository = TABLE
expire_logs_days = 3
log_slave_updates = 1
gtid_mode = ON
enforce_gtid_consistency = true
relay_log_info_repository = TABLE
relay_log_recovery = ON

skip_slave_start=1

log_bin_trust_function_creators=1

#SQL Audit
#server_audit_logging = on
#plugin-load=server_audit=server_audit.so
#server_audit_file_path = /data/sqlaudit
#server_audit = FORCE_PLUS_PERMANENT

#Slow Queries
slow_query_log=1
long_query_time=1

symbolic-links = 0
sql_mode = STRICT_ALL_TABLES,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysqld_safe]

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

设置MySQL开机启动

systemctl enable mysqld
systemctl start mysqld
#复制输出结果
grep generated /var/log/mysqld.log | awk -F": " '{print $NF}'

⭐8.设置密码

#回车后键入上一步复制的密码
mysql -uroot -p
set password=password('Newmed!@s0bey');
#授权新用户,这个仅仅是示例,具体账号密码要求参考事业部给出的文档
GRANT ALL ON *.* TO 'mysql'@'%' IDENTIFIED BY 'hqy-webtv';
FLUSH PRIVILEGES;

⭐⭐⭐⭐⭐MySQL 安全授权访问设置建议用如下示例规范:

—->

#单个IP
grant all privileges on *.* to root@'192.168.1.3' identified by '123' with grant option;
flush privileges;
#IP段,使用%代替IP
grant all privileges on *.* to root@'192.168.1.%' identified by '123' with grant option;
or
grant all privileges on *.* to root@'192.168.%.%' identified by '123' with grant option;
flush privileges;

 

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CentOS 7和Anolis OS 8.6的网络配置有一些区别。 在CentOS 7中,网络配置通常通过修改网络配置文件来完成。你可以通过编辑"/etc/sysconfig/network-scripts/ifcfg-eth0"文件来配置有线网络接口,包括设置IP地址、子网掩码、默认网关等。此外,你还可以通过命令行工具(如nmcli)或图形界面(如nmtui)进行网络配置。 而在Anolis OS 8.6中,网络配置与CentOS 7比较类似,都可以通过修改网络配置文件来完成。你可以通过编辑"/etc/sysconfig/network-scripts/ifcfg-eth0"文件来配置有线网络接口,设置IP地址、子网掩码、默认网关等。另外,Anolis OS 8.6也提供了图形化的网络配置界面,你可以通过选择"Install Anolis OS 8",然后根据图形界面的指引进行网络配置。 综上所述,CentOS 7和Anolis OS 8.6的网络配置方法基本相同,都可以通过修改网络配置文件或使用图形界面进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [centos7网络配置](https://download.csdn.net/download/m0_63624418/86974755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【Anolis OS】龙蜥操作系统(Anolis OS) 8.6安装指南](https://blog.csdn.net/qq_45392321/article/details/127168085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [龙蜥操作系统 Anolis OS 8.6 - 来自阿里云的 CentOS 8 100% 兼容发行版](https://blog.csdn.net/netgc/article/details/125641403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值