麒麟(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)
更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。
技术交流
大家点赞、收藏、关注、评论啦!
更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。