当前位置: 首页 > news >正文

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

博主介绍:
计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,掌握mysql、oracle、sqlserver等主流数据库。具有丰富的项目经验和开发技能。提供相关的学习资料、程序开发、技术解答、代码讲解、文档报告等专业服务。
热爱写作,热爱分享编程知识,善于把知识点讲得通俗易懂,累积创作近百万字,累计浏览量 100 万+。
会持续分享编程干货和好玩的知识~


文章目录

      • 1、下载MySQL安装包
      • 2、卸载系统自带的mariadb和已安装过的MySQL包
      • 3、解压并配置安装目录
      • 4、修改配置文件:vi /etc/my.cnf
      • 5、初始化数据库
      • 6、配置系统服务
      • 7、设置MySQL的环境变量
      • 8、启动MySQL
      • 9、修改密码,授权远程访问,新建用户
      • 技术交流

系统环境:

[root@xxzx-dalaochao-19 nydsjzx]# uname -a
Linux xxzx-dalaochao-19.novalocal 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@xxzx-dalaochao-19 nydsjzx]# 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通用版本,选择自己需要的版本,我这里选了8.4.5。


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 -e --nodeps mariadb-connector-c-3.0.6-6.ky10.x86_64
rpm -qa 是一个用于查询在Linux系统上安装的所有RPM包的命令。
rpm -e 是在Linux系统上用于卸载(或删除)已安装的RPM软件包的命令。使用--nodeps选项会绕过依赖性检查,强制安装或卸载RPM软件包。

如果已经安装了低版本mysql,也卸载

# 列出所有MySQL相关包 
[root@xxzx-dalaochao-19 nydsjzx]# rpm -qa | grep mysql
mysql-community-embedded-devel-5.7.44-1.el7.x86_64
mysql-community-client-5.7.44-1.el7.x86_64
mysql-community-devel-5.7.44-1.el7.x86_64
mysql-community-common-5.7.44-1.el7.x86_64
mysql-community-embedded-5.7.44-1.el7.x86_64
mysql-community-libs-compat-5.7.44-1.el7.x86_64
mysql-community-libs-5.7.44-1.el7.x86_64
mysql-community-embedded-compat-5.7.44-1.el7.x86_64
mysql-community-server-5.7.44-1.el7.x86_64# 卸载
rpm -e --nodeps  mysql-community-embedded-devel-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-client-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-devel-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-common-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-embedded-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-libs-compat-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-libs-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-embedded-compat-5.7.44-1.el7.x86_64
rpm -e --nodeps  mysql-community-server-5.7.44-1.el7.x86_64
# 清理残留文件
rm -rf /var/lib/mysql  # 删除数据目录
rm -rf /etc/my.cnf* /etc/mysql  # 删除配置文件
rm -rf /usr/local/mysql  # 若源码安装需删除安装目录

3、解压并配置安装目录

# 解压
tar -xvf mysql-8.4.5-linux-glibc2.17-x86_64.tar.xz -C /usr/local/
cd /usr/local
mv mysql-8.4.5-linux-glibc2.17-x86_64 mysql-8.4.5
# 创建数据目录(根据自个磁盘空间情况自行调整)
mkdir /var/lib/mysql
# 创建用户及权限配置
groupadd mysql && useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql-8.4.5
chown mysql:mysql /var/lib/mysql

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

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

[mysqld]
# 设置8888端口
port=8888
# 设置mysql的安装目录
basedir=/usr/local/mysql-8.4.5
# 设置mysql数据库的数据的存放目录
datadir=/var/lib/mysql
# 允许最大连接数
max_connections=5000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=1000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证(新版本)
mysql_native_password=ON
# 默认使用“mysql_native_password”插件认证(旧版本)
# default_authentication_plugin=mysql_native_password[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=8888
# 设置mysql字符集排序规则
collation-server=utf8mb4_0900_ai_ci

5、初始化数据库

cd /usr/local/mysql-8.4.5
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.4.5 --datadir=/var/lib/mysql
# 记录输出的临时密码(如A temporary password is generated for root@localhost:: 临时密码)

详情如下:

[root@xxzx-dalaochao-19 mysql-8.4.5]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.4.5 --datadir=/var/lib/mysql
2025-04-29T08:59:16.197715Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-04-29T08:59:16.200616Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.4.5/bin/mysqld (mysqld 8.4.5) initializing of server in progress as process 2819431
2025-04-29T08:59:16.268813Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-04-29T08:59:25.545922Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-04-29T08:59:36.856254Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jxf4A#4ys4e*
2025-04-29T08:59:47.977784Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

6、配置系统服务

设置可以通过mysqld控制MYSQL服务和开机自启

cd /usr/local/mysql-8.4.5
# 将MySQL自带的启动脚本mysql.server复制到系统的服务管理目录/etc/init.d/中,并重命名为mysqld
cp support-files/mysql.server /etc/init.d/mysqld
systemctl daemon-reload
systemctl enable mysqld

7、设置MySQL的环境变量

不设置环境变量在使用mysql客户端时不识别命令,就得进入bin目录执行./mysql -uroot -p,vi /etc/profile

# 在末尾添加如下内容:
export MYSQL_HOME=/usr/local/mysql-8.4.5
export PATH=$PATH:$MYSQL_HOME/bin# 然后执行如下命令加载环境变量
source /etc/profile

8、启动MySQL

# 启动MySQL
systemctl start mysqld

9、修改密码,授权远程访问,新建用户

# 登录
mysql -uroot -p
# 设置新密码
alter user 'root'@'localhost' identified by 'DaLao@666';
# 授权远程访问
update user set user.Host='%' where user.User='root';
# 新建用户dlc
create user 'dlc'@'%' identified by 'DaLao@666';
# 授权
grant all privileges on *.* to 'dlc'@'%';
# 刷新权限
flush privileges;

详情如下:

# 登录
[root@xxzx-dalaochao-19 bin]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 520
Server version: 8.4.5Copyright (c) 2000, 2025, 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.11 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 -A
Database changed
# 授权远程访问
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.11 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select Host,User,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| Host      | User             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| %         | root             | $A$005$343     #o10*yna;8      3hTukUAMEGQOjsKruiVr/GFuXNt3wHvTiKBoTzLQ5vA |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
+-----------+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)
# 新建用户
mysql> create user 'dlc'@'%' identified by 'DaLao@666';
Query OK, 0 rows affected (0.06 sec)
# 授权
mysql> grant all privileges on *.* to 'dlc'@'%';
Query OK, 0 rows affected (0.10 sec)
# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)mysql> select version();
+-----------+
| version() |
+-----------+
| 8.4.5     |
+-----------+
1 row in set (0.00 sec)

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


技术交流

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


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

相关文章:

  • (32)VTK C++开发示例 ---背景纹理
  • C语言实现库函数strlen
  • 运维仙途 第1章 灵机突现探监控
  • Hbuilder 开发鸿蒙应用,打包成 hap 格式(并没有上架应用商店,只安装调试用)
  • HarmonyOS Next-DevEco Studio(5.0.2)无网络环境配置(详细教程)
  • Tailwind CSS实战技巧:从核心类到高效开发
  • HTML5 新增的主要标签整理
  • 基于C++的IOT网关和平台6:github项目ctGateway后台服务和数据模型
  • Vue3 Echarts 3D立方体柱状图实现教程
  • Github 热点项目 Qwen3 通义千问全面发布 新一代智能语言模型系统
  • Tomcat 服务频繁崩溃的排查与解决方法
  • 读论文笔记-LLaVA:Visual Instruction Tuning
  • 12.SpringDoc OpenAPI 功能介绍(用于生成API接口文档)
  • Qt QWebEngine应用和网页的交互
  • QCefView应用和网页的交互
  • HBuider中Uniapp去除顶部导航栏-小程序、H5、APP适用
  • scGPT-spatial:持续预训练scGPT用于空间转录组
  • 驱动开发系列54 - Linux Graphics QXL显卡驱动代码分析(一)设备初始化
  • 比亚迪再获国际双奖 以“技术为王”书写中国汽车出海新篇章
  • python查看指定的进程是否存在
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 两部门调度部署“五一”假期安全防范工作,要求抓好旅游安全
  • 央行4月开展12000亿元买断式逆回购操作
  • 澎湃回声丨23岁小伙“被精神病8年”续:今日将被移出“重精”管理系统
  • 街区党支部书记们亮出治理实招,解锁“善治街区二十法”
  • 专访|200余起诉讼,特朗普上台100天,美国已进入宪政危机