在国产麒麟系统KylinOS Server V10 SP2上使用rpm方式安装MySQL 8.0.28
一: 准备操作系统
1.1 首先确认操作系统版本是KylinOS Server V10 SP2
麒麟操作系统Kylinos Server V10 SP2使用的安装介质是Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso,执行以下命令查看版本:
1 | cat /etc/kylin-release |
1 | cat /proc/version |
1.2. 检查系统是否自带MySQL或MariaDB
通过以下命令检查是否安装:
1 | rpm -qa | grep mariadb |
如果系统已经安装了其它版本的MySQL或者MariaDB则要将其删除,执行以下命令删除:
1 | rpm -e {mariadb-server,mariadb,mariadb-errmessage,mariadb-common} |
1.3 检查SSL包是否安装
通过以下命令检查是否安装:
1 | rpm -qa | grep ssl |
如果系统未安装openssl相关组件则需要将其安装,这里缺少openssl-devel,用yum安装之,这样它会自动安装依赖包,执行以下命令安装:
1 | 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.com/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目录,并解压,如下图:
1 | 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
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!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包:
1 2 3 4 5 6 7 | 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服务默认并未启动,可以通过以下命令查看到状态:
1 | systemctl status mysqld |
接下来要启动MySQL,通过执行以下命令启动:
1 | systemctl start mysqld |
再次查看MySQL服务状态,看到MySQL服务成功启动:
1 | systemctl status mysqld |
四: 配置MySQL
MySQL安装完成后需要对MySQL做基础配置,包括首次登录修改用户密码、数据文件位置调整、redo log大小与数量调整、undo 表空间调整、ibdata表空间调整、binlog+errorlog+slowlog+pid+socket等文件调整、性能参数调整,这些调整都可以通过修改my.cnf参数文件实现。
4.1 首次登录
在MySQL安装完成第一次启动MySQL服务后,会自动为MySQL的root用户生成一个随机初始化密码,并在MySQL的errorlog文件中记录下来,我们要找到它并用它登录MySQL,修改root用户密码后才能执行任何其它操作:
- 找到初始化密码
1 | grep password /var/log/mysqld.log |
下图绿色方框中即为初始化密码
- 使用上面的初始化密码登录MySQL
1 | mysql -uroot -p |
回车后,在下图绿色框中输入密码,成功登录MySQL
- 修改root密码
使用初始化密码登录MySQL后只能执行修改密码的操作,其它任何操作是不能执行的,使用以下命令修改密码:
1 | SQL>alter user user() identified by 'LaoGeDB123!'; |
密码修改成功后,执行以下命令查看MySQL基本信息:
1 | SQL>status |
4.2 修改my.cnf参数文件
my.cnf默认会在/etc目录下自动生成,需要编辑此文件以调整各种文件配置和性能配置参数。
- 在修改前要关闭MySQL服务
1 | systemctl stop mysqld |
- 编辑/etc/my.cnf文件
1 | vim /etc/my.cnf |
按如下内容编辑my.cnf,系统和用户表空间放在data目录中,undo 表空间放在undo目录中,binlog开启GTID MODE并将binlog放在log目录中,redo log放在redo目录中并开启redo归档将归档日志放在arch目录中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | [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数据文件
my.cnf配置文件中调整了undo、redo、binlog等文件的存放位置,因此需要将MySQL安装后默认数据目录下的文件移动到与my.cnf对应的目录下。
首先,创建与my.cnf中配置对应的目录
1 | mkdir /data/mysql/{data,redo,undo,arch,log} -p |
其次,移动文件到对应的目录
1 2 3 | mv /var/lib/mysql/undo* /data/mysql/undo mv /var/lib/mysql/ib_logfile* /data/mysql/redo mv /var/lib/mysql/* /data/mysql/data |
最后,修改目录权限
1 | chown mysql.mysql /data/mysql -R |
4.3 启动MySQL服务
1 | systemctl start mysqld |
五: 测试MySQL
5.1 查看MySQL服务状态
1 | systemctl status mysqld |
5.2 登录MySQL
1 | mysql -uroot -p |
一切正常,至此安装完成。
需要注意麒麟操作系统的CPU架构是X86还是arm架构,可以使用hostnamectl判断