国产麒麟系统KylinOS Server V10 SP2安装MySQL 8.0.28—二进制包安装


裙子帅气
裙子帅气 2022-09-29 09:27:34 50705
分类专栏: 资讯

上一篇文档讲述了在国产麒麟系统KylinOS V10 SP2上以源码编译方式安装MySQL 8.0.28。

此篇文档是第三篇:使用MySQL官方预编译二进制包方式安装。

一: 操作系统环境检查

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

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

cat /etc/kylin-release

3d65369c3707929b6f6a0d6bc109b68c.png

cat /proc/version

c6d17b79bdea7d46d5c27a98e822cfc1.png

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

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

rpm -qa | grep mariadb

47af707c5fcb4ca10e52eba6eb22acb0.png

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

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

1.3 安装mysql运行所必须的依赖包

mysql 8.0运行依赖如下包,执行以下命令安装:

  1. yum install -y perl-Data-Dumper libaio libaio-devel
  2. yum install -y ncurses ncurses-devel ncurses-base ncurses-libs
  3. yum install -y openssl openssl-devel openssl-libs
  4. yum install -y bzip2 bzip2-devel
  5. yum install -y libtirpc libtirpc-devel
  6. yum install -y readline readline-devel

二:准备MySQL安装包

此文档安装社区版MySQL 8.0.28,此版本可与Kylinos V10 SP2兼容。

2.1 下载MySQL安装包

打开MySQL官网下载页面,选择正确的筛选条件

https://dev.mysql.com/downloads/mysql/

  • Select Operating System 选择Linux-Generic
  • Select OS Version 中有两选择,第一个是选择glibc2.12(X86_64),第二个是选择glibc2.17(X86_64),二者区别我们放在文章最后讲述。

b3f7068c76bf6e63f0598657d385e376.png

此处我们选择glibc_2.17(X86_64)版本:

b52df607834f1aeb6856cf30626bd3ab.png

2.2 上传MySQL二进制包

将MySQL 8.0.28的二进制包上传到/root/Documents目录并解压,解压后将所得目录移动到/usr/local目录下。

  1. cd /root/Documents
  2. tar xvf mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz
  3. mv mysql-8.0.28-linux-glibc2.17-x86_64-minimal /usr/local/mysql-8.0.28

三:配置启动MySQL

4.1 创建mysql用户

  1. groupadd mysql
  2. useradd -M -g mysql -s /sbin/nologin mysql

4.2 创建数据目录

  1. mkdir /data/mysql/{data,log,redo,undo,arch} -p
  2. chown mysql.mysql /data -R

43018420228ffd9383d7059a2e299daf.png

4.3 创建mysql环境变量

创建mysql目录软连接

  1. ln -s /usr/local/mysql-8.0.28 /usr/local/mysql
  2. chown mysql.mysql mysql-8.0.28 -R

6a83967c769c1c5c6a4195715cbebe00.png

创建mysql环境变量配置文件

  1. echo 'MYSQL_HOME=/usr/local/mysql' >> /etc/profile.d/mysql.sh
  2. echo 'PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile.d/mysql.sh
  3. echo 'export PATH' >> /etc/profile.d/mysql.sh
  4. source /etc/profile.d/mysql.sh

4c481de5d3182c96943b2bd740bc031c.png

4.4 创建my.cnf配置文件

编辑/etc/my.cnf文件

vim /etc/my.cnf

输入以下内容到/etc/my.cnf中,此配置将data、redolog、undo、binlog分别置于独立目录。

  1. [mysql]
  2. socket=/data/mysql/data/mysqld.sock
  3. [mysqld]
  4. base config
  5. server-id=210
  6. basedir=/usr/local/mysql
  7. datadir=/data/mysql/data
  8. socket=/data/mysql/data/mysqld.sock
  9. pid-file=/data/mysql/data/mysqld.pid
  10. log-error=/data/mysql/log/mysqld.log
  11. query config
  12. join_buffer_size = 128M
  13. sort_buffer_size = 16M
  14. read_buffer_size = 16M
  15. read_rnd_buffer_size = 8M
  16. open table config
  17. table_open_cache=2000
  18. table_open_cache_instances=16
  19. connection config
  20. max_connections=2000
  21. thread_cache_size=200
  22. binlog config
  23. log_bin=/data/mysql/log/binlog
  24. log_bin_index=/data/mysql/log/binlog.index
  25. binlog_format=ROW
  26. max_binlog_size=1G
  27. binlog_cache_size=16M
  28. binlog_expire_logs_seconds=604800
  29. enforce_gtid_consistency=ON
  30. gtid_mode=ON
  31. general log config
  32. general_log=OFF
  33. general_log_file=/data/mysql/log/mysqld.gnl
  34. slow query config
  35. log_output=FILE
  36. long_query_time=1
  37. slow_query_log=ON
  38. slow_query_log_file=/data/mysql/log/mysqld.slow
  39. innodb redo log config
  40. innodb_log_file_size=1G
  41. innodb_log_files_in_group=3
  42. innodb_log_buffer_size=16M
  43. innodb_log_group_home_dir=/data/mysql/redo
  44. innodb_redo_log_archive_dirs=/data/mysql/arch
  45. innodb undo log config
  46. innodb_max_undo_log_size=1G
  47. innodb_undo_tablespaces=2
  48. innodb_undo_directory=/data/mysql/undo
  49. innodb config
  50. innodb_data_file_path=ibdata1:12M:autoextend
  51. innodb_temp_data_file_path=ibtmp1:12M:autoextend
  52. innodb_temp_tablespaces_dir=./innodb_temp/
  53. innodb_autoextend_increment=64
  54. innodb_buffer_pool_size=8G
  55. innodb_open_files=10000
  56. open_files_limit=10000

4.5 初始化mysql

mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

4.6 配置systemctl mysqld服务

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

输入如下内容:

  1. [Unit]
  2. Description=MySQL Server
  3. Documentation=man:mysqld(8)
  4. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  5. After=network.target
  6. After=syslog.target
  7. [Install]
  8. WantedBy=multi-user.target
  9. [Service]
  10. User=mysql
  11. Group=mysql
  12. Type=notify
  13. Disable service start and stop timeout logic of systemd for mysqld service.
  14. TimeoutSec=0
  15. Execute pre and post scripts as root
  16. PermissionsStartOnly=true
  17. Start main service
  18. ExecStart=/usr/local/mysql/bin/mysqld -variable">$MYSQLD_OPTS
  19. Use this to switch malloc implementation
  20. EnvironmentFile=-/etc/sysconfig/mysql
  21. Sets open_files_limit
  22. LimitNOFILE = 10000
  23. Restart=on-failure
  24. RestartPreventExitStatus=1
  25. Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
  26. Environment=MYSQLD_PARENT_PID=1
  27. PrivateTmp=false
vim /usr/lib/systemd/system/mysqld@.service

输入如下内容:

  1. [Unit]
  2. Description=MySQL Server
  3. Documentation=man:mysqld(8)
  4. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  5. After=network.target
  6. After=syslog.target
  7. [Install]
  8. WantedBy=multi-user.target
  9. [Service]
  10. User=mysql
  11. Group=mysql
  12. Type=notify
  13. Disable service start and stop timeout logic of systemd for mysqld service.
  14. TimeoutSec=0
  15. Execute pre and post scripts as root
  16. PermissionsStartOnly=true
  17. Start main service
  18. ExecStart=/usr/local/mysql/bin/mysqld --defaults-group-suffix=@%I -variable">$MYSQLD_OPTS
  19. Use this to switch malloc implementation
  20. EnvironmentFile=-/etc/sysconfig/mysql
  21. Sets open_files_limit
  22. LimitNOFILE = 10000
  23. Restart=on-failure
  24. RestartPreventExitStatus=1
  25. Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
  26. Environment=MYSQLD_PARENT_PID=1
  27. PrivateTmp=false

4.7 启用mysqld服务

配置并初始化完成后MySQL服务默认并未启动,可以通过以下命令启动:

systemctl enable mysqld

2fa47d3800dc683cf73edc431074dbdb.png

启动mysql服务

systemctl start mysqld

查看mysqld服务状态:

systemctl status mysqld

c82709ce3ce6c76fa75ce958d82ce0f6.png

4.7 首次登录mysql

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

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

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

26e73f03514202faf44cb9f82765b301.png

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

eeba4947240716009187890eb88ac2fb.png

  • 修改root密码

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

mysql-operator">> alter user user()  identified  by  'LaoGeDB123!';

b8a0446fa60c8a165d08fc1a05b12f65.png

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

mysql-operator">>status

758b02155d6c82cbcd7264b6b306f4a8.png

4e93b5843f549fe20a8583f64b5885c5.png

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


补充说明

  1. mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz与mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz两个版本的区别:
  • mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz是最小化编译二进制版本,其中不包括一系列debug所用到的mysqld_debug可执行文件,并且mysqld也不是静态编译,而是动态链接库方式编译的,所以它的体积更小,但需要操作系统中有其运行所需要的2.17的动态链接库。
  • mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz是完整编译的二进制版本,其中包括debug所需的mysqld_debug可执行文件,并且mysqld是静态编译,而非动态链接库方式编译的,所以它的体积更大,但不需要操作系统提供动态链接库即可运行。

之所以选择glibc2.17版本,是因为此本体积更小巧。

centos7以及之后的操作系统一般都同时支持了glibc2.12与glibc2.17,甚至到centos8系列已经可以支持到glibc2.28,比如我们用的麒麟服务器版V10 SP2就提供了最低2.2.5到最高2.28各个版本的支持。

  • 查看系统支持的GLIBC库列表,可以执行如下命令:
strings /usr/lib64/libc.so.6 | grep GLIBC

33409fcdc0a44f13adbcdf5d2f7f96b9.png

  • 查看系统当前运行的GLIBC版本,可以执行如下命令:
ldd --version

6f1001114544c5f2df726069140f9b9e.png


作者:老哥讲数据库

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

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

文章知识点与官方知识档案匹配,可进一步学习相关知识

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10669
赞同 0
评论 0 条
裙子帅气L0
粉丝 0 发表 7 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2675
【软件正版化】软件正版化工作要点  2640
统信UOS试玩黑神话:悟空  2536
信刻光盘安全隔离与信息交换系统  2221
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1092
grub引导程序无法找到指定设备和分区  747
WPS City Talk · 校招西安站来了!  15
金山办公2024算法挑战赛 | 报名截止日期更新  15
看到某国的寻呼机炸了,就问你用某水果手机发抖不?  14
有在找工作的IT人吗?  13
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!