国产Linux麒麟体系-安装mysql8.0

[复制链接]
发表于 2026-10-4 12:02:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

国产麒麟系统(Kylin Server V10)上装 MySQL 8.0,跟 CentOS 8 的路子基本一致,麻烦点在于系统自带 mariadb 会跟 mysql 抢文件,不先清干净后面 rpm 装一半就失败。本文记录从查系统版本、卸载 mariadb、下载对应 RPM 包、按依赖顺序安装,到改 my.cnf、起服务、建库和开远程权限的全过程。

一、先看清系统信息

cat /etc/os-release

二、查并卸载自带的 mariadb

mariadb 和 mysql 两类包都要查:

rpm -qa | grep mariadb
rpm -qa | grep mysql

看到的每个包都要卸载,用 --nodeps 强制去掉依赖:

rpm -e --nodeps mariadb-connector-c-3.0.6-7.ky10.x86_64

再去查一遍还有没有残留的 mysql 文件并删干净,否则等会儿安装会失败。

三、下载 MySQL 安装包

选对应版本

因为 Kylinos Server V10 是基于 CentOS 8 开发的,所以去官网下载时选 Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Bundle 这一档。

上传并解压

上传服务器后先确认磁盘挂好了(新机器记得先挂盘),再解压:

tar xvf mysql-8.0.37-1.el8.x86_64.rpm-bundle.tar

四、这几个包分别是什么

  • mysql-community-server:服务端,跑 MySQL 需要的程序都在里面
  • mysql-community-client:客户端,用来连服务器
  • mysql-community-client-plugins:客户端插件,提供额外功能
  • mysql-community-libs:客户端和服务端共用的共享库
  • mysql-community-icu-data-files:MySQL 用到的 ICU 国际化数据文件
  • mysql-community-common:两边共享的配置文件
  • mysql-community-libs-compat:旧版本兼容库(MySQL 8.0.36 起这个包已被移除)

五、按依赖顺序安装

rpm -ivh mysql-community-common-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.37-1.el8.x86_64.rpm

装完用 mysql -V 看版本。

六、改 my.cnf

vi /etc/my.cnf

几个必须按自己环境改的点:

datadir=/data/mysql
socket=/data/mysql.sock
pid_file=/data/mysqld.pid
port=6612
log_error=/data/log/mysqld.log
server_id=168710
log_bin=/data/binlog/mysql-binlog
binlog_expire_logs_seconds=2592000
innodb_redo_log_capacity=2048M
innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit=1
sync_binlog=1
open_files_limit=65535
table_open_cache=1024
innodb_buffer_pool_size=12G
innodb_purge_threads=8
innodb_write_io_threads=8
innodb_read_io_threads=8
innodb_max_undo_log_size=1G
lower_case_table_names=1
max_allowed_packet=1G
character_set_server=utf8mb4
transaction_isolation=REPEATABLE-READ
slow_query_log=0
long_query_time=2
max_connections=2000
log_timestamps=SYSTEM

[client]
socket=/data/mysql.sock

说明两点:innodb_buffer_pool_size 给内存八成,16G 内存的机器设 12G;purge/write/read 这几个线程数按 CPU 核数给(lscpu 看),8 核就填 8。目录记得先建好,否则启动起不来。

七、服务管理与首次登录

systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld
systemctl enable mysqld

首次启动的 root 随机密码在错误日志日志里:

cat /var/log/mysqld.log | grep root@localhost

登录后第一件事改密码:

alter user root@localhost identified by 'xxxxxxxx';

建库、导数据:

CREATE DATABASE xxxx_project;
mysql -uroot -pxxxx < xxxx.sql

八、远程用户与授权

create user '新用户名'@'允许的来源ip' identified by '新用户的密码';
select host, user, plugin from user;

如果客户端连过来看不到库,多半是权限没给,把这几项刷成 Y:

update user set Select_priv='Y' where user='root' and host='你的IP';
update user set INSERT_priv='Y' where user='root' and host='你的IP';
update user set UPDATE_priv='Y' where user='root' and host='你的IP';
update user set Delete_priv='Y' where user='root' and host='你的IP';
update user set Create_priv='Y' where user='root' and host='你的IP';

要一把梭也可以直接全授权:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的IP' WITH GRANT OPTION;

最后别忘了刷新:

FLUSH PRIVILEGES;

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表