Linux1020 GBLIC安装mysql
为什么默认情况下GBLIC版本的MySQL要求安装到/usr/local/mysql目录,且mysql.server脚本中的目录设置相同会导致冲突
根据您提供的图片内容,我来解释为什么默认情况下GBLIC版本的MySQL要求安装到/usr/local/mysql目录,且mysql.server脚本中的目录设置相同会导致冲突,从而使MySQL无法启动。
问题根源分析
在MySQL的GBLIC版本中,默认配置硬编码了安装路径和数据路径。具体原因如下:路径硬编码冲突:
basedir(安装目录)和datadir(数据目录)在MySQL的配置文件和启动脚本中通常被预设为/usr/local/mysql。如果MySQL实际安装在其他路径(例如通过源码编译安装到自定义目录),但脚本仍指向默认路径,系统会无法找到必要的二进制文件或数据文件,导致服务启动失败。
例如,如果MySQL被安装到/opt/mysql,但mysql.server脚本中的basedir仍为/usr/local/mysql,那么脚本尝试执行/usr/local/mysql/bin/mysqld时,会因文件不存在而报错。权限和环境不匹配:
即使路径一致,如果/usr/local/mysql目录的权限设置不正确(如MySQL运行用户无权访问),也会触发启动失败。默认安装可能未自动设置权限,需手动调整。
另外,系统环境变量(如PATH)可能未包含默认路径,导致脚本无法定位MySQL组件。脚本与配置不一致:
mysql.server脚本是初始化脚本,它依赖basedir和datadir变量来启动服务。如果这些变量在脚本中硬编码为/usr/local/mysql,但实际配置文件(如/etc/my.cnf)中的设置不同,就会产生冲突,使MySQL在启动时读取错误配置。
记录
caozx26@192.168.235.200's password:┌────────────────────────────────────────────────────────────────────┐│ • MobaXterm 20.0 • ││ (SSH client, X-server and networking tools) ││ ││ ➤ SSH session to caozx26@192.168.235.200 ││ • SSH compression : ✘ ││ • SSH-browser : ✔ ││ • X11-forwarding : ✔ (remote display is forwarded through SSH) ││ • DISPLAY : ✔ (automatically set on remote server) ││ ││ ➤ For more info, ctrl+click on help or visit our website │└────────────────────────────────────────────────────────────────────┘Last login: Sat Oct 18 03:39:02 2025 from 192.168.235.1
[caozx26@client ~]$ which mysql
/usr/bin/which: no mysql in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/caozx26/.local/bin:/home/caozx26/bin)
[caozx26@client ~]$ yum -y install ncurses-devel.x86_64 cmake.x86_64 libaio-devel.x86_64 opens
openscap-containers.noarch openslp-server.x86_64 openssh-askpass.x86_64
openscap-python.x86_64 openslp.x86_64 openssh-keycat.x86_64
openscap-scanner.x86_64 opensm-libs.x86_64 openssl098e.x86_64
openscap-utils.x86_64 opensm.x86_64 openssl-devel.x86_64
openscap.x86_64 opensp.x86_64
[caozx26@client ~]$ yum -y install ncurses-devel.x86_64 cmake.x86_64 libaio-devel.x86_64 openss
openssh-askpass.x86_64 openssh-keycat.x86_64 openssl098e.x86_64 openssl-devel.x86_64
[caozx26@client ~]$ yum -y install ncurses-devel.x86_64 cmake.x86_64 libaio-devel.x86_64 openssl-devel.x86_64
已加载插件:fastestmirror, langpacks
您需要 root 权限执行此命令。
[caozx26@client ~]$ sudo su
[sudo] caozx26 的密码:
[root@client caozx26]# yum -y install ncurses-devel.x86_64 cmake.x86_64 libaio-devel.x86_64 openssl-devel.x86_64
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 cmake.x86_64.0.2.8.12.2-2.el7 将被 安装
---> 软件包 libaio-devel.x86_64.0.0.3.109-13.el7 将被 安装
---> 软件包 ncurses-devel.x86_64.0.5.9-14.20130511.el7_4 将被 安装
---> 软件包 openssl-devel.x86_64.1.1.0.2k-19.el7 将被 安装
--> 正在处理依赖关系 zlib-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-19.el7.x86_64 需要
--> 正在处理依赖关系 krb5-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-19.el7.x86_64 需要
--> 正在检查事务
---> 软件包 krb5-devel.x86_64.0.1.15.1-50.el7 将被 安装
--> 正在处理依赖关系 libverto-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要
--> 正在处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要
--> 正在处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要
--> 正在处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要
---> 软件包 zlib-devel.x86_64.0.1.2.7-18.el7 将被 安装
--> 正在检查事务
---> 软件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 将被 安装
---> 软件包 libcom_err-devel.x86_64.0.1.42.9-19.el7 将被 安装
---> 软件包 libselinux-devel.x86_64.0.2.5-15.el7 将被 安装
--> 正在处理依赖关系 libsepol-devel(x86-64) >= 2.5-10,它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libpcre),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
---> 软件包 libverto-devel.x86_64.0.0.2.5-4.el7 将被 安装
--> 正在检查事务
---> 软件包 libsepol-devel.x86_64.0.2.5-10.el7 将被 安装
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
--> 解决依赖关系完成依赖关系解决===========================================================================================================Package 架构 版本 源 大小
===========================================================================================================
正在安装:cmake x86_64 2.8.12.2-2.el7 local 7.1 Mlibaio-devel x86_64 0.3.109-13.el7 local 13 kncurses-devel x86_64 5.9-14.20130511.el7_4 local 712 kopenssl-devel x86_64 1:1.0.2k-19.el7 local 1.5 M
为依赖而安装:keyutils-libs-devel x86_64 1.5.8-3.el7 local 37 kkrb5-devel x86_64 1.15.1-50.el7 local 273 klibcom_err-devel x86_64 1.42.9-19.el7 local 32 klibselinux-devel x86_64 2.5-15.el7 local 187 klibsepol-devel x86_64 2.5-10.el7 local 77 klibverto-devel x86_64 0.2.5-4.el7 local 12 kpcre-devel x86_64 8.32-17.el7 local 480 kzlib-devel x86_64 1.2.7-18.el7 local 50 k事务概要
===========================================================================================================
安装 4 软件包 (+8 依赖软件包)总下载量:10 M
安装大小:35 M
Downloading packages:-----------------------------------------------------------------------------------------------------------
总计 1.2 MB/s | 10 MB 00:00:08
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装 : libsepol-devel-2.5-10.el7.x86_64 1/12正在安装 : libcom_err-devel-1.42.9-19.el7.x86_64 2/12正在安装 : pcre-devel-8.32-17.el7.x86_64 3/12正在安装 : libselinux-devel-2.5-15.el7.x86_64 4/12正在安装 : zlib-devel-1.2.7-18.el7.x86_64 5/12正在安装 : libverto-devel-0.2.5-4.el7.x86_64 6/12正在安装 : keyutils-libs-devel-1.5.8-3.el7.x86_64 7/12正在安装 : krb5-devel-1.15.1-50.el7.x86_64 8/12正在安装 : 1:openssl-devel-1.0.2k-19.el7.x86_64 9/12正在安装 : libaio-devel-0.3.109-13.el7.x86_64 10/12正在安装 : cmake-2.8.12.2-2.el7.x86_64 11/12正在安装 : ncurses-devel-5.9-14.20130511.el7_4.x86_64 12/12验证中 : libselinux-devel-2.5-15.el7.x86_64 1/12验证中 : keyutils-libs-devel-1.5.8-3.el7.x86_64 2/12验证中 : libverto-devel-0.2.5-4.el7.x86_64 3/12验证中 : zlib-devel-1.2.7-18.el7.x86_64 4/12验证中 : ncurses-devel-5.9-14.20130511.el7_4.x86_64 5/12验证中 : cmake-2.8.12.2-2.el7.x86_64 6/12验证中 : pcre-devel-8.32-17.el7.x86_64 7/12验证中 : 1:openssl-devel-1.0.2k-19.el7.x86_64 8/12验证中 : libaio-devel-0.3.109-13.el7.x86_64 9/12验证中 : libcom_err-devel-1.42.9-19.el7.x86_64 10/12验证中 : krb5-devel-1.15.1-50.el7.x86_64 11/12验证中 : libsepol-devel-2.5-10.el7.x86_64 12/12已安装:cmake.x86_64 0:2.8.12.2-2.el7 libaio-devel.x86_64 0:0.3.109-13.el7ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 openssl-devel.x86_64 1:1.0.2k-19.el7作为依赖被安装:keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.15.1-50.el7libcom_err-devel.x86_64 0:1.42.9-19.el7 libselinux-devel.x86_64 0:2.5-15.el7libsepol-devel.x86_64 0:2.5-10.el7 libverto-devel.x86_64 0:0.2.5-4.el7pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7完毕!
[root@client caozx26]#
[root@client caozx26]# yum install libaio -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 libaio-0.3.109-13.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@client caozx26]# ls
1828.txt 2.txt app1 inotify-tools-3.13.tar.gz 模板 桌面
1837.txt 35.txt a.txt mysql-5.7.31-linux-glibc2.12-x86_64.tar(1).gz 视频
1.java 3.java b.txt mysql-boost-5.7.31.tar(1).gz 图片
1.txt 4.java file22.txt sed.sh 文档
2041 5.java ifcfg-ens33 smb.conf 下载
2.java app inotify-tools-3.13 公共 音乐
[root@client caozx26]# tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar\(1\).gz
[root@client caozx26]# ls mysql-5.7.31-linux-glibc2.12-x86_64
bin docs include lib LICENSE man README share support-files
[root@client caozx26]# useradd -r -s /sbin/nologin mysql
[root@client caozx26]# id mysqk
id: mysqk: no such user
[root@client caozx26]# id mysql
uid=987(mysql) gid=981(mysql) 组=981(mysql)
[root@client caozx26]# ls
1828.txt 2.txt app1 inotify-tools-3.13.tar.gz 公共 音乐
1837.txt 35.txt a.txt mysql-5.7.31-linux-glibc2.12-x86_64 模板 桌面
1.java 3.java b.txt mysql-5.7.31-linux-glibc2.12-x86_64.tar(1).gz 视频
1.txt 4.java file22.txt mysql-boost-5.7.31.tar(1).gz 图片
2041 5.java ifcfg-ens33 sed.sh 文档
2.java app inotify-tools-3.13 smb.conf 下载
[root@client caozx26]# mkdir /mysql_3306
[root@client caozx26]# mv mysql-5.7.31-linux-glibc2.12-x86_64 /mysql_3306/
[root@client caozx26]# rm -rf /etc/my.cnf
[root@client caozx26]# cd /mysql_3306/
[root@client mysql_3306]# mkdir mysql-files
[root@client mysql_3306]# chown mysql:mysql mysql_files
chown: 无法访问"mysql_files": 没有那个文件或目录
[root@client mysql_3306]# chown mysql:mysql mysql_fileschown: 无法访问"mysql_files": 没有那个文件或目录
[root@client mysql_3306]# chown mysql:mysql mysql-files
[root@client mysql_3306]# chmod 750 mysql-files
[root@client mysql_3306]# bin/mysqld --initialize --user=mysql --basedir=/mysql_3306
bash: bin/mysqld: 没有那个文件或目录
[root@client mysql_3306]# ls
mysql-5.7.31-linux-glibc2.12-x86_64 mysql-files
[root@client mysql_3306]#