【问题标题】:Mysql not running after upgrading mysql version升级mysql版本后mysql不运行
【发布时间】:2018-05-03 09:00:40
【问题描述】:

按照this 链接,我在 ubuntu 14.04 droplet 上将 MySQL 版本从 5.5 升级到了 5.7。但是升级 MySQL 后就无法开始显示这个错误了。

mysqld: Can't read dir of '/etc/mysql/mysql.conf.d/' (Errcode: 13 - Permission denied)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

如何解决这个问题?

【问题讨论】:

  • 看起来升级与您的权限混淆了。您可以尝试执行sudo su,然后运行 ​​MySQL 作为健全性检查,以确保它可以运行。
  • @TimBiegeleisen 仍然是错误
  • ls -ld '/etc/mysql/mysql.conf.d/' 说什么?
  • @ThomasG drwxr-xr-x 2 root root 4096 May 3 07:54 /etc/mysql/mysql.conf.d/
  • 你读过这个吗? bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1455773 看起来可能是 apparmor 的问题

标签: mysql ubuntu-14.04


【解决方案1】:

在我的情况下,AppArmor 阻止 MySQL 访问此目录。我禁用了它:

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

我找到了这个解决方案here

另一种方法是调整 /etc/apparmor.d/usr.sbin.mysqld 内部的配置。

【讨论】:

  • 完美!这解决了我的问题!谢谢@adrihanu
【解决方案2】:

您尝试使用 chmod 设置文件夹的权限

chmod 755 /etc/mysql/mysql.conf.d

mysql.conf.d 是一个可以添加的新文件

【讨论】:

  • 权限很好,如 cmets 所述。
  • 你帮了我大忙。我已经知道权限是错误的,我只是不知道他们需要什么。谢谢!
【解决方案3】:

有时mysql无法启动或工作的原因是因为您的系统内存可能已满,因此您可能需要运行“apt autoremove”,有时需要运行“apt autoclean”,以确保准确运行“服务” mysql状态”

【讨论】:

    【解决方案4】:

    以下是纠正此问题的步骤:

    在 /etc/mysql 中备份您的 my.cnf 文件并删除或重命名它

    sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
    Remove the folder /etc/mysql/mysql.conf.d/ using
    
    sudo rm -r /etc/mysql/mysql.conf.d/
    

    确认您没有将 my.cnf 文件存储在其他地方(我在我的主目录中!)或 /etc/alternatives/my.cnf 使用

    sudo find / -name my.cnf
    

    备份和删除 /etc/mysql/debian.cnf 文件(不确定是否需要,但以防万一)

    sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
    sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
    sudo apt install mysql-server
    

    如果您的系统日志显示类似“mysqld: Can't read dir of '/etc/mysql/conf.d/'”之类的错误,请创建符号链接:

    sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
    

    那么服务应该可以通过 sudo service mysql start 启动。

    【讨论】:

      【解决方案5】:

      由于系统内存已满或某些依赖问题,有时 mysql 无法启动。所以你可能需要在启动mysql之前清理你的内存。

      你可以试试这个来解决你的问题

      apt-get autoremove
      apt-get remove --purge mysql*
      apt-get autoclean
      deluser mysql
      rm -rf /var/log/mysql
      rm -rf /var/lib/mysql
      rm -rf /etc/mysql
      

      无论如何这些都是升级mysql的正确步骤

      1. 在 /etc/mysql 中备份您的 my.cnf 文件并删除或重命名它

        sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
        
      2. 删除文件夹 /etc/mysql/mysql.conf.d/ 使用

        sudo rm -r /etc/mysql/mysql.conf.d/
        
      3. 确认您没有将 my.cnf 文件存储在其他地方(我在我的主目录中!)或 /etc/alternatives/my.cnf 使用

        sudo find / -name my.cnf
        
      4. 备份和删除 /etc/mysql/debian.cnf 文件(不确定是否需要,但以防万一)

        sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
        sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
        sudo apt install mysql-server
        
      5. 如果您的系统日志显示类似“mysqld: Can't read dir of '/etc/mysql/conf.d/'”之类的错误,请创建符号链接:

        sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
        

      那么服务应该可以以sudo service mysql start启动

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-01-20
        • 2012-11-22
        • 1970-01-01
        • 1970-01-01
        • 2022-08-23
        • 2020-01-13
        相关资源
        最近更新 更多