ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

记一次成功安装MySQL‑8.0.28到银河麒麟V10,并实现远程访问

记一次成功安装MySQL‑8.0.28到银河麒麟V10,并实现远程访问

工具/原料

  1. MySQL数据库安装包下载地址
    https://dev.mysql.com/downloads/mysql/

本次实验版本:mysql‑8.0.28‑linux‑glibc2.12‑x86_64.tar.xz

image

  1. 银河麒麟V10操作系统镜像下载地址(注册登录后根据CPU架构选择对应版本)
    https://eco.kylinos.cn/partners/mirror.html?class_id=1

方法/步骤

1 系统环境准备

1.1 清理历史MySQL、MariaDB残留环境

目的:避免旧版本库、配置冲突,保证全新安装。

# 检查系统是否存在mysql、mariadb相关安装包
rpm -qa | grep mysql
rpm -qa | grep mariadb# yum卸载相关软件包
yum -y remove mysql*
yum -y remove mariadb*# 若yum卸载不干净,使用rpm强制删除指定包(filename替换为实际包名)
rpm -e filename# 全盘查找mysql相关残留文件,找到后手动删除
find / -name mysql

1.2 创建mysql系统用户与用户组

mysql服务使用普通系统用户运行,禁止root直接运行数据库进程。

# 检查mysql用户组是否已存在
cat /etc/group | grep mysql# 创建mysql用户,禁止登录shell
useradd mysql -s /sbin/nologin# 验证用户信息
id mysql
# 预期输出:uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)

1.3 创建业务目录

生产环境建议:程序、数据、binlog日志分开部署在不同磁盘,提升安全与性能。

# 软件安装根目录
mkdir -p /app/database/# 数据存储目录
mkdir -p /data/3306/# binlog日志目录
mkdir -p /binlog/3306/

1.4 目录权限授权

chown -R mysql.mysql /app/ /data/ /binlog/

1.5 防火墙配置(开放3306远程访问端口)

二选一:

方式1:直接关闭防火墙(测试环境可用,生产不推荐)

systemctl stop firewalld
systemctl disable firewalld

方式2:只放行3306端口(生产环境推荐)

firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld

2 MySQL数据库软件部署

2.1 上传解压MySQL压缩包

使用rz上传工具或FTP工具把安装包上传到 /app/database/

cd /app/database/# 解压安装包
tar -xzvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz# 创建软链接,方便版本升级管理
ln -s mysql-8.0.28-linux-glibc2.12-x86_64 mysql

2.2 配置系统环境变量

注意:原文档存在笔误msyql,修正为mysql

cd /app/database/mysql
chown -R mysql.mysql *# 编辑profile配置文件
vim /etc/profile

在文件末尾增加:

export PATH=/app/database/mysql/bin:$PATH

保存退出后加载环境变量:

source /etc/profile# 验证MySQL版本
mysql -V
# 预期输出:mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

2.3 编写MySQL配置文件 /etc/my.cnf

vim /etc/my.cnf

粘贴以下完整配置:

[mysqld]
basedir=/app/database/mysql
bind-address=0.0.0.0
datadir=/data/3306
log-error=/data/3306/mysql.err
lower-case-table-names=1
pid-file=/data/3306/mysql.pid
port=3306
server_id=1
socket=/tmp/mysql.sock
user=mysql
#字符集配置
character_set_server=utf8mb4
symbolic-links=0[mysql]
socket=/tmp/mysql.sock

参数说明:lower‑case‑table‑names=1 开启数据库表名不区分大小写。

保存退出 :wq

2.4 初始化MySQL数据库

cd /app/database/mysql/bin
# --initialize‑insecure 初始化无初始密码,后续手动设置密码
./mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/ --defaults-file=/etc/my.cnf --lower-case-table-names=1

常见报错:缺少libaio‑devel依赖

yum install -y libaio-devel

查看错误日志(本示例初始化无密码,日志中不会生成临时密码)

cat /data/3306/mysql.err

image

2.5 配置系统服务与开机自启

cd /app/database/mysql/support-files/
# 将mysql.server复制到系统服务目录
cp mysql.server /etc/init.d/mysqld

服务操作命令:

# 注意服务名是mysqld
service mysqld status
service mysqld start
service mysqld stop
service mysqld restart

设置开机自启:

chkconfig --add mysqld
chkconfig mysqld on# 校验开机自启,3、4、5级别显示on即为成功
chkconfig | grep mysql

3 数据库登录、修改密码、开启远程访问

3.1 设置root用户密码

示例密码:huanu.1#,可自行修改

mysqladmin -uroot -p password huanu.1#
# 初始化无密码,直接回车确认旧密码

3.2 本地登录MySQL

mysql -uroot -p -P3306 -h127.0.0.1

输入设置的密码登录。

3.3 MySQL退出命令(三种)

exit;
quit;
\q;

3.4 配置root允许所有主机远程访问

use mysql;
update user set host ='%' where user ='root' and host ='localhost';
flush privileges;

完成以上操作,外部机器就可以通过IP+3306端口远程连接数据库。


补充注意事项

  1. 文档中原笔误:cd /app/database/msyql → 修正为cd /app/database/mysqlsystemctl restart firewall → 修正为systemctl restart firewalld
  2. --initialize‑insecure初始化不会生成临时密码;如果使用--initialize则会生成随机初始密码,需要从err日志读取。
  3. 生产环境不建议直接给root开放%所有地址访问,建议限定指定业务服务器IP。
  4. 银河麒麟V10使用yum包管理器,软件依赖全部使用yum安装。
返回列表