admin 管理员组

文章数量: 887018

最近工作重点转向信创领域后就开始研究国产化操作系统对各种数据库的适配方案,期间发现一些很有价值的内容,特意整理成文章分享出来。

此文档讲述如何在国产麒麟操作系统KylinOS Server V10 SP2上安装MySQL 8.0.28的第一篇:使用MySQL RPM包安装。

一: 准备操作系统

1.1 首先确认操作系统版本是KylinOS Server V10 SP2

麒麟操作系统Kylinos Server V10 SP2使用的安装介质是Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso,执行以下命令查看版本:

cat /etc/kylin-release

cat /proc/version

1.2. 检查系统是否自带MySQL或MariaDB

通过以下命令检查是否安装:

rpm -qa | grep mariadb

如果系统已经安装了其它版本的MySQL或者MariaDB则要将其删除,执行以下命令删除:

rpm -e {mariadb-server,mariadb,mariadb-errmessage,mariadb-common}

1.3 检查SSL包是否安装

通过以下命令检查是否安装:

rpm -qa | grep ssl

如果系统未安装openssl相关组件则需要将其安装,这里缺少openssl-devel,用yum安装之,这样它会自动安装依赖包,执行以下命令安装:

yum install openssl-devel

二: 准备MySQL安装包

最新社区版MySQL 8.0.28可与Kylinos Server V10 SP2兼容,因为Kylinos Server V10 SP2就是基于CentOS 8开发而来,确切说是基于华为Euler系统,而MySQL 8.0.28是可以兼容CentOS 8 的。

2.1 下载MySQL安装包

打开MySQL官网下载页面: https://dev.mysql/downloads/mysql/

选择MySQL 8.0.28版本,操作系统选择RedHat Enterprise Linux 8 64 bit,如下图:

在下方安装包列表处,选择mysql-8.0.28-1.el8.x86_64.rpm-bundle.tar下载,如下图:

2.2 解压MySQL安装包

将MySQL 8.0.28上传到/root/Documents目录,并解压,如下图:

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

三: 安装MySQL

3.1 安装MySQL

只需要安装以下必选组件即可,注意必须按照先后顺序安装,如下列表:

mysql-community-common-8.0.28-1.el8.x86_64.rpm

mysql-community-client-plugins-8.0.28-1.el8.x86_64.rpm

mysql-community-libs-8.0.28-1.el8.x86_64.rpm

mysql-community-client-8.0.28-1.el8.x86_64.rpm

mysql-community-icu-data-files-8.0.28-1.el8.x86_64.rpm

mysql-community-server-8.0.28-1.el8.x86_64.rpm

mysql-community-devel-8.0.28-1.el8.x86_64.rpm

使用以下命令安装每个rpm包:

rpm -ivh mysql-community-common-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.28-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.28-1.el8.x86_64.rpm

安装过程如下图:

3.2 启动MySQL

安装完成后MySQL服务默认并未启动,可以通过以下命令查看到状态:

systemctl status mysqld

接下来要启动MySQL,通过执行以下命令启动:

systemctl start mysqld

再次查看MySQL服务状态,看到MySQL服务成功启动:

systemctl status mysqld

四: 配置MySQL

MySQL安装完成后需要对MySQL做基础配置,包括首次登录修改用户密码、数据文件位置调整、redo log大小与数量调整、undo 表空间调整、ibdata表空间调整、binlog+errorlog+slowlog+pid+socket等文件调整、性能参数调整,这些调整都可以通过修改myf参数文件实现。

4.1 首次登录

在MySQL安装完成第一次启动MySQL服务后,会自动为MySQL的root用户生成一个随机初始化密码,并在MySQL的errorlog文件中记录下来,我们要找到它并用它登录MySQL,修改root用户密码后才能执行任何其它操作:

  • 找到初始化密码
grep password /var/log/mysqld.log

下图绿色方框中即为初始化密码

  • 使用上面的初始化密码登录MySQL
mysql -uroot -p

回车后,在下图绿色框中输入密码,成功登录MySQL

  • 修改root密码

使用初始化密码登录MySQL后只能执行修改密码的操作,其它任何操作是不能执行的,使用以下命令修改密码:

SQL>alter user user() identified by 'LaoGeDB123!';

密码修改成功后,执行以下命令查看MySQL基本信息:

SQL>status

4.2 修改myf参数文件

myf默认会在/etc目录下自动生成,需要编辑此文件以调整各种文件配置和性能配置参数。

  • 在修改前要关闭MySQL服务
systemctl stop mysqld
  • 编辑/etc/myf文件
vim /etc/myf

按如下内容编辑myf,系统和用户表空间放在data目录中,undo 表空间放在undo目录中,binlog开启GTID MODE并将binlog放在log目录中,redo log放在redo目录中并开启redo归档将归档日志放在arch目录中。

[mysql]
socket=/data/mysql/data/mysqld.sock

[mysqld]
###base config###
server-id=211
datadir=/data/mysql/data
socket=/data/mysql/data/mysqld.sock
pid-file=/data/mysql/data/mysqld.pid
log-error=/data/mysql/log/mysqld.log

###query config###
join_buffer_size = 128M
sort_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 8M

###open table config###
table_open_cache=2000
table_open_cache_instances=16

###connection config###
max_connections=2000
thread_cache_size=200

###binlog config###
log_bin=/data/mysql/log/binlog
log_bin_index=/data/mysql/log/binlog.index
binlog_format=ROW
max_binlog_size=1G
binlog_cache_size=16M
binlog_expire_logs_seconds=604800
enforce_gtid_consistency=ON
gtid_mode=ON

###general log config###
general_log=OFF
general_log_file=/data/mysql/log/mysqld.gnl

###slow query config###
log_output=FILE
long_query_time=1
slow_query_log=ON
slow_query_log_file=/data/mysql/log/mysqld.slow

###innodb redo log config###
innodb_log_file_size=1G
innodb_log_files_in_group=3
innodb_log_buffer_size=16M
innodb_log_group_home_dir=/data/mysql/redo
innodb_redo_log_archive_dirs=/data/mysql/arch

###innodb undo log config###
#innodb_max_undo_log_size=1G
#innodb_undo_tablespaces=2
innodb_undo_directory=/data/mysql/undo

###innodb config###
#innodb_data_file_path=ibdata1:12M:autoextend
#innodb_temp_data_file_path=ibtmp1:12M:autoextend
#innodb_temp_tablespaces_dir=./#innodb_temp/
#innodb_autoextend_increment=64
innodb_buffer_pool_size=8G
innodb_open_files=10000
open_files_limit=10000

编辑完保存退出。

  • 移动MySQL数据文件

myf配置文件中调整了undo、redo、binlog等文件的存放位置,因此需要将MySQL安装后默认数据目录下的文件移动到与myf对应的目录下。

首先,创建与myf中配置对应的目录

mkdir /data/mysql/{data,redo,undo,arch,log} -p

其次,移动文件到对应的目录

mv /var/lib/mysql/undo*  /data/mysql/undo
mv /var/lib/mysql/ib_logfile*  /data/mysql/redo
mv /var/lib/mysql/*  /data/mysql/data

最后,修改目录权限

chown mysql.mysql /data/mysql -R

4.3 启动MySQL服务

systemctl start mysqld

五: 测试MySQL

5.1 查看MySQL服务状态

systemctl status mysqld

5.2 登录MySQL

mysql -uroot -p

一切正常,至此安装完成。


作者:老哥讲数据库

简介:数据库高级架构师 | Oracle 11g&12c OCM认证 | MySQL 5.7&8.0 OCP认证

原创文章,转载请注明来源。

本文标签: 麒麟 系统 Server KYLINOS rpm