暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

openEuler和KylinV10安装MySQL8.0.36教程(离线RPM包方式)

MySQL是一种流行的关系型数据库管理系统,广泛应用于各种系统中。随着CentOS7和CentOS8的生命周期终止(EOL),许多用户转向使用国产操作系统替代成为新的选择。在openEuler和银河麒麟KylinV10上安装MySQL 8.0.36已经变得非常普遍,本文将使用离线RPM包的安装方式进行演示。

公众号:霸王龙的日常
专注数据库,分享实用的项目实战经验。

1 环境说明

本文适用于银河麒麟 KylinV10openEuler 20.03openEuler 22.03 操作系统 x86_64ARM(aarch64) 架构。

2 设置主机名和映射关系

hostnamectl set-hostname trex
echo '192.168.7.21 trex' >> /etc/hosts
su

image.png

3 查看系统信息

# 银河麒麟KylinV10
cat /etc/.productinfo

# openEuler20.03 or openEuler22.03 
cat /etc/os-release

image.png

4 设置最大用户线程数

执行如下命令将最大用户线程数写入/etc/security/limits.conf文件,重启后参数永久生效

echo "
* soft nproc 65536
* hard nproc 65536
" >> /etc/security/limits.conf

image.png

5 关闭防火墙

# 查看状态
systemctl status firewalld
# 关闭
systemctl stop firewalld
# 禁用开机自启
systemctl disable firewalld

image.pngimg

6 设置selinux配置

禁用开机自启动

编辑/etc/sysconfig/selinux,将SELINUX=enforcing修改为SELINUX=disabled

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

查看修改后的参数

cat /etc/sysconfig/selinux

重启操作系统生效

reboot

image.png
img

查看SELinux状态

sestatus

查看SELinux的应用模式

getenforce

image.pngimg

7 卸载系统自带的mariadb

# 卸载
rpm -qa | grep mariadb | xargs -i rpm -e {} --nodeps
# 检查
rpm -qa | grep mariadb

image.pngimg

8 下载MySQL安装包

银河麒麟高级服务器操作系统V10基于 openEuler 开源内核开发的国产操作系统。[1]并且 Kylinos Server V10 兼容 CentOS8[2],所以这里下载CentOS8对应的安装包。

  • • mysql下载
https://dev.mysql.com/downloads/mysql/
NAME VALUE
Select Version 8.0.36
Select Operating System Red Hat Enterprise Linux / Oracle Linux
Select OS Version Red Hat Enterprise Linux 8 / Oracle Linux 8(x86,64-bit) Red Hat Enterprise Linux 8 / Oracle Linux 8(ARM,64-bit)

注意:

根据操作系统架构选择

x86架构:Red Hat Enterprise Linux 8 / Oracle Linux 8(x86,64-bit)
ARM架构:Red Hat Enterprise Linux 8 / Oracle Linux 8(ARM,64-bit)

image.pngimg

  • • 选择 RPM Bundle(mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar)

image.pngimg

  • • 选择 No thanks, just start my download.

image.pngimg

你也可以通过下面地址直接下载,传送门

# x86_64架构:
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar
##ARM架构:
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-1.el8.aarch64.rpm-bundle.tar

9 创建安装包存放目录并上传MySQL安装包

  • • 创建安装包存放目录
mkdir /soft
cd /soft/
  • • 上传安装包mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar/soft

image.pngimg

10 解压MySQL安装包

将MySQL 8.0.36上传到/soft目录,并解压,如下图:

tar -xvf mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar

image.png

11 安装MySQL

在大多数情况下,您需要安装 mysql-community-server, mysql-community-client, mysql-community-client-plugins, mysql-community-libs, mysql-community-icu-data-files, mysql-community-common, 以及 mysql-community-libs-compat .

这里解释一下各个安装文件

  • mysql-community-serverMySQL 服务端,包含了运行 MySQL 服务所需的文件和程序。
  • mysql-community-clientMySQL 客户端,用于连接到 MySQL 服务器
  • mysql-community-client-pluginsMySQL 客户端的插件,这些插件提供了额外的功能或特性。
  • mysql-community-libs包含 MySQL 客户端和服务器使用的共享库文件。
  • mysql-community-icu-data-files包含 MySQL 使用的 ICU(International Components for Unicode)数据文件。
  • mysql-community-common包含 MySQL 客户端和服务器共享的一些常用文件和配置。
  • mysql-community-libs-compat提供与旧版本 MySQL 库的兼容性支持(MySQL8.0.36已移除该安装包)

安装命令如下:

yum install -y mysql-community-{server,client,client-plugins,libs,icu-data-files,common}-8.0.36*

image.pngimg

12 创建配置所需的目录

mkdir -p /data/{mysql,binlog,log}
chown mysql:mysql -R /data
路径 说明
/data/mysql 数据存放主目录
/data/binlog binlog存放目录
/data/log mysql日志存放目录

13 修改mysql配置文件

# 用"#"屏蔽默认的配置项
sed -i '/^datadir=/ s/^/# /' /etc/my.cnf
sed -i '/^socket=/ s/^/# /' /etc/my.cnf
sed -i '/^log-error=/ s/^/# /' /etc/my.cnf
sed -i '/^pid-file=/ s/^/# /' /etc/my.cnf
# 查看配置文件
cat /etc/my.cnf

image.pngimg

编辑my.cnf文件

vi /etc/my.cnf

追加如下信息,按需修改

datadir=/data/mysql                         #数据文件目录
socket=/data/mysql.sock                     #socket文件路径
pid_file=/data/mysqld.pid                   #MySQL服务器进程ID文件的路径
port=6612                                   #端口
log_error=/data/log/mysqld.log              #运行日志路径
server_id = 168710                          #MySQL实例唯一标识
log_bin = /data/binlog/mysql-binlog         #根据安装路径设置存放binlog存放位置
binlog_expire_logs_seconds=2592000          #默认二进制日志过期时间为 2592000 秒,等于 30 天(30*24*60*60 秒)
innodb_redo_log_capacity = 2048M            #Redo Log的总容量,8.0.30版本引入
innodb_log_buffer_size = 32M                #日志文件的缓冲区的大小
innodb_flush_log_at_trx_commit = 1          #默认设置为1,是完全符合 ACID 标准所必需的。日志在每次事务提交时写入并刷新到磁盘
sync_binlog = 1                             #每次事务提交时同步二进制日志
open_files_limit = 65535                    #能打开的文件数上限
table_open_cache = 1024                     #指定一次InnoDB可以打开的最大文件数
innodb_buffer_pool_size = 12G               #内存的80% ,比如系统内存为16G(通过free -g查看),设置为12G
innodb_purge_threads = 8                    #控制回滚段(Undo Segment)清理线程的数量.设置为CPU核数(通过lscpu查看),比如8核,就设置为8
innodb_write_io_threads = 8                 #控制写入 I/O 操作的线程数,值同上
innodb_read_io_threads = 8                  #控制读取 I/O 操作的线程数,值同上
innodb_max_undo_log_size = 1G               #undo阈值,默认值1G
lower_case_table_names = 1                  #表名不区分大小写
max_allowed_packet = 1G                     #消息缓冲区大小
character_set_server = utf8mb4              #字符集
transaction_isolation = REPEATABLE-READ     #事务隔离级别,可重复读。默认值为 REPEATABLE-READ.
slow_query_log = 0                          #慢查询功能(0/OFF:关闭;1/ON:开启)
long_query_time = 2                         #超过2秒的sql输出到日志
max_connections = 2000                      #最大连接数
log_bin_trust_function_creators=1           #允许任何用户(包括没有 SUPER 特权的用户)创建或修改存储过程、函数创建,根据实际情况设置
sql_mode="NO_ENGINE_SUBSTITUTION"           #服务器SQL模式,模式会影响MySQL支持的SQL语法及其执行的数据验证检查。根据实际情况设置
group_concat_max_len=1024000                #GROUP_CONCAT函数允许的最大结果长度(以字节为单位)。默认值为 1024.
skip-name-resolve=OFF                       #是否在检查客户端连接时解析主机名(OFF/ON),根据实际情况设置
log_timestamps=SYSTEM                       #日志的显示时间和系统时间保持一致 

[client]
socket=/data/mysql.sock                     #socket文件路径

14 设置数据库可打开文件限制数

vi /usr/lib/systemd/system/mysqld.service

找到LimitNOFILE = 10000,修改为LimitNOFILE = 65535

image.pngimg

重新加载,使配置生效

systemctl daemon-reload

15 启动mysql服务

systemctl start mysqld.service

16 查看初始化密码

grep 'temporary password' /data/log/mysqld.log

执行操作结果如下所示:

image.pngimg

其中AHrwgt?q0-3s 就是root'@'localhost的初始化密码

17 登录数据库设置修改root密码

# 登录mysql
mysql -uroot -p
提示 Enter password: 输入初始化密码,进入mysql命令行
# 修改root密码
alter user 'root'@'localhost' identified with mysql_native_password by 'Trex@123';
# 刷新权限
flush privileges;

image.pngimg

此时通过远程客户端并不能访问数据库,如果需要远程登录root用户,操作如下

use mysql;
update user set host='%' where user='root';
flush privileges;

image.pngimg

18 通过客户端登录验证

这里以Navicat客户端为例

image.pngimg

至此,MySQL8.0.36安装完成。

关注作者,定期为您分享实用的项目实战经验。

2.pngimg

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论