CentOS7下无法启动mysql的解决办法

本文介绍了如何正确安装和配置MariaDB数据库管理系统,并提供了解决常见安装错误的方法。此外,还详细说明了如何设置root用户的密码。

原文链接:点击打开链接

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。[3]

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB

<code class="hljs vala has-numbering" style="padding: 0px; margin: 0px; display: block; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="padding: 0px; margin: 0px; color: rgb(68, 68, 68); box-sizing: border-box;"># yum install mysql -y</span>
<span class="hljs-preprocessor" style="padding: 0px; margin: 0px; color: rgb(68, 68, 68); box-sizing: border-box;"># mysql</span>
ERROR <span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2002</span> (HY000): Can<span class="hljs-string" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'t connect to local MySQL server through socket '</span>/<span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">var</span>/lib/mysql/mysql.sock<span class="hljs-string" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">' (111)</span></code>

试着去启动mysql服务,仍然不行

<code class="hljs oxygene has-numbering" style="padding: 0px; margin: 0px; display: block; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"># systemctl start mysql
Failed <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">to</span> issue <span class="hljs-function" style="padding: 0px; margin: 0px; box-sizing: border-box;"><span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">method</span> <span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">call</span>:</span> <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">Unit</span> mysql.service failed <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">to</span> load: No such file <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">or</span> directory.

# systemctl start  mysql.service
Failed <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">to</span> issue <span class="hljs-function" style="padding: 0px; margin: 0px; box-sizing: border-box;"><span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">method</span> <span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">call</span>:</span> <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">Unit</span> mysql.service failed <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">to</span> load: No such file <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">or</span> directory

# systemctl enable mysql.service
Failed <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">to</span> issue <span class="hljs-function" style="padding: 0px; margin: 0px; box-sizing: border-box;"><span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">method</span> <span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">call</span>:</span> Access denied</code>

下面讲正确的步骤

<code class="hljs livecodeserver has-numbering" style="padding: 0px; margin: 0px; display: block; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="padding: 0px; margin: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"># yum install mariadb-server -y</span>
<span class="hljs-comment" style="padding: 0px; margin: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"># systemctl start mariadb.service</span>
<span class="hljs-comment" style="padding: 0px; margin: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"># systemctl enable mariadb.service</span>
<span class="hljs-comment" style="padding: 0px; margin: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"># mysql</span>
Welcome <span class="hljs-built_in" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); box-sizing: border-box;">to</span> <span class="hljs-operator" style="padding: 0px; margin: 0px; box-sizing: border-box;">the</span> MariaDB monitor.  Commands <span class="hljs-function" style="padding: 0px; margin: 0px; box-sizing: border-box;"><span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">end</span> <span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">with</span> ; <span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">or</span> \<span class="hljs-title" style="padding: 0px; margin: 0px; box-sizing: border-box;">g</span>.</span>
Your MariaDB connection id is <span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10</span>
Server <span class="hljs-built_in" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); box-sizing: border-box;">version</span>: <span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">5.5</span><span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">.44</span>-MariaDB MariaDB Server

Copyright (c) <span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2000</span>, <span class="hljs-number" style="padding: 0px; margin: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2015</span>, Oracle, MariaDB Corporation Ab <span class="hljs-operator" style="padding: 0px; margin: 0px; box-sizing: border-box;">and</span> others.

Type <span class="hljs-string" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'help;'</span> <span class="hljs-operator" style="padding: 0px; margin: 0px; box-sizing: border-box;">or</span> <span class="hljs-string" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'\h'</span> <span class="hljs-keyword" style="padding: 0px; margin: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> help. Type <span class="hljs-string" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'\c'</span> <span class="hljs-built_in" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); box-sizing: border-box;">to</span> <span class="hljs-built_in" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); box-sizing: border-box;">clear</span> <span class="hljs-operator" style="padding: 0px; margin: 0px; box-sizing: border-box;">the</span> current input statement.

MariaDB [(<span class="hljs-constant" style="padding: 0px; margin: 0px; box-sizing: border-box;">none</span>)]> 
</code>

搞定!

如何设置mysql root密码

<code class="hljs vala has-numbering" style="padding: 0px; margin: 0px; display: block; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="padding: 0px; margin: 0px; color: rgb(68, 68, 68); box-sizing: border-box;"># mysql_secure_installation</span></code>

<think>好的,我需要帮助用户解决在CentOS 9上安装MySQL 5.7无法启动的问题。根据用户提供的引用资料,CentOS 8和7的安装步骤有所不同,但可能有一些共通的解决方案。首先,我应该检查用户可能遇到的常见问题,比如用户和组是否存在,权限设置是否正确,依赖包是否安装,以及配置文件是否有误。 首先,引用[1]提到在CentOS 8安装时如果出现`chown: invalid user: ‘mysql:mysql’`错误,是因为mysql用户不存在,需要创建。虽然CentOS 9可能情况类似,但需要确认用户是否存在。所以第一步应该是检查并创建mysql用户和组。 其次,引用[2]和[3]都提到了安装MySQL 5.7时需要导入密钥和按顺序安装rpm包。CentOS 9可能仓库中已经不包含MySQL 5.7的包,或者依赖库不兼容,导致安装失败。用户可能需要手动下载rpm包或添加旧版仓库,或者处理依赖问题。 另外,系统兼容性也是一个问题。CentOS 9可能默认使用更新的库,比如glibc版本,而MySQL 5.7可能需要较旧的库。可能需要检查依赖关系,安装兼容的库。 配置文件错误或权限问题也可能导致启动失败。例如,数据目录的权限是否正确,my.cnf配置是否有误,或者SELinux是否阻止了MySQL的访问。 最后,日志文件是关键,查看MySQL的错误日志(通常位于/var/log/mysqld.log)可以找到具体的错误信息,从而针对性解决。 总结可能的解决步骤: 1. 确认mysql用户和组存在,不存在则创建。 2. 检查安装步骤是否正确,是否缺少依赖包,可能需要手动安装。 3. 处理系统兼容性问题,如安装旧版库或调整配置。 4. 检查配置文件和权限设置,确保正确无误。 5. 查看错误日志,定位具体错误。 需要将这些步骤详细说明,并参考用户提供的引用资料中的相关步骤,如创建用户、安装顺序等,同时考虑CentOS 9的新特性可能带来的问题。</think>### CentOS 9安装MySQL 5.7无法启动的解决方案 #### 1. 检查用户和组权限 MySQL服务需要专用用户`mysql`和用户组`mysql`。若安装过程中未自动创建,需手动执行以下命令: ```bash groupadd mysql useradd -r -g mysql mysql ``` 之后重新执行权限设置命令: ```bash chown -R mysql:mysql /var/lib/mysql ``` 若权限问题导致启动失败,此步骤可解决[^1]。 --- #### 2. 验证依赖包和安装顺序 CentOS 9默认仓库可能不包含MySQL 5.7的官方包,需手动下载RPM包并按顺序安装: ```bash # 下载MySQL 5.7 RPM包(需从官网或镜像站获取) wget https://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm # 安装依赖(按顺序执行) rpm -ivh mysql-community-common-5.7*.rpm rpm -ivh mysql-community-libs-5.7*.rpm rpm -ivh mysql-community-client-5.7*.rpm rpm -ivh mysql-community-server-5.7*.rpm ``` 若提示依赖错误(如`libcrypto.so.10`缺失),需安装`compat-openssl10`等兼容库[^3]。 --- #### 3. 处理系统兼容性问题 CentOS 9可能缺少MySQL 5.7所需的旧版库文件,需通过以下方式解决: ```bash # 安装兼容库 dnf install compat-openssl10 libnsl # 创建符号链接(示例) ln -s /usr/lib64/libnsl.so.2 /usr/lib64/libnsl.so.1 ``` --- #### 4. 检查配置文件和数据目录 - **配置文件路径**:`/etc/my.cnf` 确保配置文件无语法错误,特别是`datadir`指向正确的数据目录(默认`/var/lib/mysql`)。 - **SELinux干扰**:临时关闭SELinux或调整策略: ```bash setenforce 0 # 临时关闭 ``` --- #### 5. 查看错误日志定位问题 MySQL启动失败的具体原因可通过日志文件排查: ```bash journalctl -u mysqld.service # 查看系统日志 tail -100 /var/log/mysqld.log # 查看MySQL错误日志 ``` 常见错误示例: - **错误1**:`Table &#39;mysql.plugin&#39; doesn&#39;t exist` 需执行初始化命令: ```bash mysqld --initialize --user=mysql ``` - **错误2**:`Can&#39;t connect to local MySQL server through socket` 检查`/var/lib/mysql/mysql.sock`是否存在,并确保权限正确。 --- #### 6. 尝试降级系统组件(谨慎操作) 若问题仍存,可尝试降级关键组件(如glibc),但需注意系统稳定性风险: ```bash dnf downgrade glibc-2.34-50.el9 ``` --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值