麒麟(Kylin)系统下安装MySQL 5.7.44(离线版)

news/2024/10/15 18:02:11/

目录

      • 1、下载MySQL安装包
      • 2、卸载系统自带的mariadb和已安装过的MySQL包
      • 3、解压bundle.tar
      • 4、安装MySQL
      • 5、修改配置文件:vi /etc/my.cnf
      • 6、启动MySQL
      • 7、查看临时密码,并修改密码,授权远程访问。
      • 8、常见问题
        • 8.1 启动mysql内存溢出
        • 8.2 安装mysql时提示缺少依赖
      • 技术交流

博主介绍:
计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库,能够为大家提供全方位的技术支持和交流。
工作五年,具有丰富的项目经验和开发技能。提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。


系统环境:

[dalaochao@xxzx-dalaochao-19 ~]$ cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

1、下载MySQL安装包

访问MySQL官方网站下载适用于Kylin的MySQL通用版本,选择自己需要的版本,我这里分别是5.7.44和Red Hat Enterprise Linux / Oracle Linux版本(离线版最好选择(x86, 64-bit), RPM Bundle)。

RPM Bundle是一个包含多个RPM软件包的打包文件,这些软件包通常是相互依赖的组件,将它们打包成一个Bundle可以确保它们的版本兼容性。

在这里插入图片描述


2、卸载系统自带的mariadb和已安装过的MySQL包

为什么要卸载?因为mariadb会跟MySQL包安装产生冲突。

[root@xxzx-dalaochao-19 ~]# rpm -qa | grep mariadb
mariadb-connector-c-3.0.6-6.ky10.x86_64
[root@xxzx-dalaochao-19 ~]# rpm -qa | grep mysql
qt5-qtbase-mysql-5.11.1-9.ky10.x86_64
[root@xxzx-dalaochao-19 ~]# rpm -e --nodeps mariadb-connector-c-3.0.6-6.ky10.x86_64
[root@xxzx-dalaochao-19 ~]# rpm -e --nodeps qt5-qtbase-mysql-5.11.1-9.ky10.x86_64
rpm -qa 是一个用于查询在Linux系统上安装的所有RPM包的命令。
rpm -e 是在Linux系统上用于卸载(或删除)已安装的RPM软件包的命令。使用--nodeps选项会绕过依赖性检查,强制安装或卸载RPM软件包。

3、解压bundle.tar

tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar -C /usr/local/bin/MYSQL

详情如下:

[root@xxzx-dalaochao-19 ~]# mkdir /usr/local/bin/MYSQL
[root@xxzx-dalaochao-19 dalaochao]# sudo tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar -C /usr/local/bin/MYSQL
mysql-5.7.44-1.el7.x86_64.rpm-bundle/
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-client-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-common-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-devel-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-embedded-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-embedded-compat-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-embedded-devel-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-libs-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-server-5.7.44-1.el7.x86_64.rpm
mysql-5.7.44-1.el7.x86_64.rpm-bundle/mysql-community-test-5.7.44-1.el7.x86_64.rpm

4、安装MySQL

安装如下rpm包

cd /usr/local/bin/MYSQL/mysql-5.7.44-1.el7.x86_64.rpm-bundle/
rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-devel-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-embedded-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-embedded-compat-5.7.44-1.el7.x86_64
rpm -ivh mysql-community-embedded-devel-5.7.44-1.el7.x86_64

rpm -ivh 用于安装RPM(Red Hat Package Manager)软件包的命令,该命令的基本语法:

rpm -ivh xxx.rpm
-i:表示安装(install)软件包。
-v:表示在安装过程中显示详细信息(verbose)。
-h:在显示安装进度时,显示哈希标记(hash marks),用于表示安装的进度。

安装时如果遇到了如下错误

error: Failed dependencies:libcrypto.so.10()(64bit) is needed by mysql-community-libs-compat-5.7.44-1.el7.x86_64libcrypto.so.10(libcrypto.so.10)(64bit) is needed by mysql-community-libs-compat-5.7.44-1.el7.x86_64libssl.so.10()(64bit) is needed by mysql-community-libs-compat-5.7.44-1.el7.x86_64libssl.so.10(libssl.so.10)(64bit) is needed by mysql-community-libs-compat-5.7.44-1.el7.x86_64

解决方法:

方法一:安装命令后加参数: --nodeps --force,不推荐此方法,强制绕过依赖性检查后期可能会出错。

方法二:安装缺少的依赖包

如果可以访问外网,直接yum安装

yum install compat-openssl10

如果要离线安装,则下载安装包,下载地址:https://download.csdn.net/download/xch_yang/89889402,然后安装即可

rpm -ivh compat-openssl10-1.0.2o-3.el8.x86_64.rpm

5、修改配置文件:vi /etc/my.cnf

根据自己的需要修改配置文件,如下我指定了端口为8888

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=8888# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

6、启动MySQL

# 启动MySQL
systemctl start mysqld
# 开机自启动
systemctl enable mysqld

7、查看临时密码,并修改密码,授权远程访问。

# 查看临时密码(os层面执行)
grep 'password' /var/log/mysqld.log
# 登录
mysql -uroot -p
# 设置新密码
alter user 'root'@'localhost' identified by 'DaLao@666';
# 授权远程访问
update user set user.Host='%' where user.User='root';

详情如下:

# 查看临时密码:
[root@xxzx-dalaochao-19 /]# grep 'password' /var/log/mysqld.log
2024-10-14T08:16:17.420893Z 1 [Note] A temporary password is generated for root@localhost: *NuwuiVdG0?Y# 登录:
[root@xxzx-dalaochao-19 /]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44
Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
# 当前任何操作都会先让你修改临时密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
# 设置新密码:
mysql> alter user 'root'@'localhost' identified by 'DaLao@666';
Query OK, 0 rows affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select Host,User,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| Host      | User          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *939FB4F18BE86A50566B02C449FCD82FFA6AFB4D |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
# 授权远程访问:
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select Host,User,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| Host      | User          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| %         | root          | *939FB4F18BE86A50566B02C449FCD82FFA6AFB4D |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

8、常见问题

mysql_305">8.1 启动mysql内存溢出
[root@xxzx-dalaochao-19 /]# systemctl start mysqld
[root@xxzx-dalaochao-19 /]# systemctl status mysqldmysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2024-10-14 16:16:23 CST; 11s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 3948311 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Process: 3948553 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)Main PID: 3948555 (mysqld)Tasks: 27Memory: 312.1MCGroup: /system.slice/mysqld.service└─3948555 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pidOct 14 16:15:59 xxzx-dalaochao-19.novalocal systemd[1]: Starting MySQL Server...
Oct 14 16:16:14 xxzx-dalaochao-19.novalocal mysqld_pre_systemd[3948311]: mysqld: Out of memory (Needed 4294967200 bytes)
Oct 14 16:16:23 xxzx-dalaochao-19.novalocal systemd[1]: Started MySQL Server.

查看内存,Swap为0,如下

[root@xxzx-dalaochao-19 /]# free -gtotal        used        free      shared  buff/cache   available
Mem:             14           2           0           0          11          10
Swap:             0           0           0

创建交换分区即可。


mysql_342">8.2 安装mysql时提示缺少依赖

解决方法:安装相应依赖,不建议强制绕过依赖性检查,如果提示缺少的包是当前解压包里的另一个rpm包,则换下顺序先安装另一个包。


技术交流

大家点赞、收藏、关注、评论啦!


更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。


http://www.ppmy.cn/news/1539538.html

相关文章

服务器与内存市场|2025预测动态早知道

根据TrendForce的数据分析报告,三大DRAM供应商在2023年服务器总bit增长率经历了不同程度下滑后,2024年市场迎来了反弹,增长率分别达到了9.9%/12.3%/24.1%。这一转变表明服务器DRAM在三大供应商中的比例预计将会增加。与此同时,由于…

vite 配置开发环境和测试环境,接口 API 自动切换

在Vite项目中配置开发环境和测试环境,并实现接口API的自动切换,可以通过配置环境变量和相应的代理设置来完成。以下是一个详细的步骤指南: 一、创建环境文件 在项目根目录下创建.env、.env.development和.env.test文件,用于存储…

【Linux】命令行下的增删查改之“查看”

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询 头部内容获取(head) head命令的功能是显示文件开头的内容,默认值为前10行。 指令参数: -n 定义显示行数 -c 指定显示头部内容的字符数 -v 总是显示文件名的头信…

洗衣店管理新思路:Spring Boot订单管理系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

.net core 实现多线程方式有哪些

在 .NET Core 中,有多种方式可以实现多线程编程。这些方式包括使用 Thread 类、Task 和 Parallel 类库。每种方法都有其适用场景和优缺点。下面我将通过代码示例来展示这些不同的多线程实现方式。 1. 使用 Thread 类 Thread 类是 .NET 中最基本的多线程实现方式。…

less和sass基本使用

变量 变量在LESS和SASS中都以符号定义,可以在全局范围内使用,也可以在局部范围内定义和使用。 LESS示例: primary-color: #3498db; padding: 15px;.article {background-color: primary-color;padding: padding; }SASS示例: $…

PHP智慧餐饮新风尚点餐系统

智慧餐饮新风尚点餐系统 —— 美食与科技的完美碰撞 🍽️ 开篇:智慧餐饮的崛起 在快节奏的现代生活中,智慧餐饮正逐渐成为我们日常的一部分。随着科技的飞速发展,餐饮行业也在不断创新,力求为顾客提供更加便捷、高效…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作)

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作) 前言数据库脚本创建需要被调度的方法创建相关实体类创建业务层接口创建业务层实现类控制层类测试结果 前言 我这边的SpringBoot的版本为2…