You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CentOS7.4下MariaDB/MySQL无法启动问题求助

解决CentOS7.4中MariaDB/MySQL重装后无法启动的问题

我之前在CentOS 7.4上折腾MariaDB的时候也碰到过一模一样的问题——本来好好的,为了开远程访问卸载重装后,死活启动不了,试了N多教程都没用,最后发现是卸载不彻底留了一堆烂摊子。给你整理一套亲测有效的排查和解决步骤:

第一步:彻底清理所有残留的MariaDB/MySQL痕迹

这是最关键的一步,很多时候重装失败都是因为旧的配置、数据或服务残留导致的:

  • 先停止所有相关服务(哪怕显示没运行也要执行):
    sudo systemctl stop mariadb mysqld
    sudo systemctl disable mariadb mysqld
    
  • 卸载所有已安装的相关包:
    sudo yum remove -y mariadb-server mariadb mysql-server mysql
    sudo yum autoremove -y
    
  • 删除残留的配置文件和目录:
    sudo rm -rf /etc/my.cnf /etc/my.cnf.d/
    
  • ⚠️重要⚠️ 删除数据目录(如果有需要保留的数据,先备份/var/lib/mysql/再执行):
    sudo rm -rf /var/lib/mysql/
    
  • 删除日志文件和服务残留:
    sudo rm -rf /var/log/mariadb/ /var/log/mysqld.log
    sudo systemctl daemon-reload
    

第二步:重新安装并初始化(以MariaDB为例,MySQL操作类似)

建议用官方源安装,避免默认源的版本兼容性问题:

  1. 添加MariaDB官方源(以10.5版本为例,适配CentOS7):
    sudo tee /etc/yum.repos.d/MariaDB.repo <<EOF
    [mariadb]
    name = MariaDB
    baseurl = https://yum.mariadb.org/10.5/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    EOF
    
  2. 安装服务端和客户端:
    sudo yum install -y MariaDB-server MariaDB-client
    
  3. 启动并检查状态:
    sudo systemctl start mariadb
    sudo systemctl status mariadb
    
  4. 如果启动成功,运行安全初始化脚本配置密码和基础安全设置:
    sudo mysql_secure_installation
    

第三步:如果还是启动失败,排查具体错误原因

如果上面的步骤还是启动不了,一定要看日志找问题,别瞎试:

  • 查看MariaDB的详细启动日志:
    sudo journalctl -u mariadb -xe
    # 或者直接看日志文件
    cat /var/log/mariadb/mariadb.log
    
  • 常见的启动失败原因及解决:
    • 权限问题:/var/lib/mysql目录的权限不属于mysql用户组,修复命令:
      sudo chown -R mysql:mysql /var/lib/mysql/
      
    • SELinux拦截:临时关闭SELinux测试是否能启动:
      sudo setenforce 0
      
      如果能启动,就配置SELinux永久允许:
      sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
      sudo restorecon -Rv /var/lib/mysql
      
    • 端口被占用:检查3306端口是否被其他进程占用:
      sudo netstat -tulpn | grep 3306
      
      找到占用进程后杀掉,或者修改MariaDB配置文件里的端口。

第四步:正确配置远程访问(别再乱卸载了!)

其实根本不需要卸载重装来开远程访问,正确的步骤是:

  1. 登录MariaDB:
    mysql -u root -p
    
  2. 授权远程访问的用户(这里用root做示例,实际建议创建专用用户):
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的数据库密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  3. 修改配置文件,允许监听所有IP:
    编辑/etc/my.cnf/etc/my.cnf.d/server.cnf,找到bind-address = 127.0.0.1,改成bind-address = 0.0.0.0或者直接注释掉这一行。
  4. 重启服务并开放防火墙端口:
    sudo systemctl restart mariadb
    sudo firewall-cmd --add-port=3306/tcp --permanent
    sudo firewall-cmd --reload
    

内容的提问来源于stack exchange,提问作者Joohun Lee

火山引擎 最新活动