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

麒麟(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)

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


技术交流

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


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

http://www.xdnf.cn/news/3068.html

相关文章:

  • 09 Python字典揭秘:数据的高效存储
  • 基于Docker的内网穿透实战:frp 0.68 + Nginx最佳实践
  • SQL Server数据库提权的几种方法——提权教程
  • Spring Data JPA 提供的功能在性能方面有哪些需要注意的地方?
  • 完美解决 mobile-ffmpeg Not overwriting - exiting
  • Ubuntu ZLMediakit的标准配置文件(rtsp->rtmp->hls)
  • 用于实时辐射场渲染的3D高斯溅射——3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • 2025华东杯B题华东杯数学建模思路代码成品讲解工序安排问题
  • 芯片软错误概率探究:基于汽车芯片安全设计视角
  • 机器学习,深度学习
  • 直播美颜SDK是什么?跨平台美颜SDK开发与接入全解析
  • iOS HTTPS 抓包踩坑记:几种方案尝试与替代工具记录
  • 硬件工程师面试常见问题(10)
  • Tailwind CSS实战技巧:从核心类到高效开发
  • Kafka的Topic分区数如何合理设置?
  • 基于LangChain构建最小智能体(Agent)实现指南
  • nvm for windows 安装低版本 node 丢失 npm 安装
  • 智驾赛道的诺曼底登陆,Momenta上海车展雄起
  • [4301]新版码点餐外卖配送餐饮小程序系统
  • 碳化硅(SiC)MOSFET桥式电路应用中米勒钳位功能的重要性
  • 卫星变轨轨迹和推力模拟(单一引力源)MATLAB
  • python实战项目67:空气质量在线检测平台js逆向
  • CCM/TCM在STM32中的含义和用途
  • Arduino程序结构详解与嵌入式开发对比指南
  • 电容的作用
  • Java学习手册:Spring MVC 架构与实现
  • 【上海大学数据库原理实验报告】MySQL基础操作
  • Vue Router路由原理
  • 能碳管理系统:构建绿色未来的智能中枢
  • Mysql查询异常【Truncated incorrect INTEGER value】