linux下载mysql启动失败解决(纯手打,绝不复制粘贴)

看着网上那些一篇文章搬过去搬过来的cs,搜了半天一点有用信息都没有,牛头不对马嘴,记录一下我遇到的问题,希望对有问题的人有帮助。
不说废话了。
遇到的大概错误如果有File ‘/usr/local/mysql/data/auto.cnf’ not found (OS errno 13 - Permission denied) Plugin mysqlx reported: ‘Setup of socket: ‘/tmp/mysqlx.sock’ failed, can’t open lock file /tmp/mysqlx.sock.lock’

尤其是这个OS errno 13 - Permission denied标识的
在这里插入图片描述再来就是什么各种localhost.localdomain.pid找不到,什么xxx找不到,创建失败。什么文件无法打开这类的
一句话就是权限问题

这里我给出的办法是my.cnf配置指定用户比如mat,和在–initialize时–user指定的要一致,或者–initialize时就别加–user。否则会造成用户不一样,my.cnf没配置的话就默认是mysql,(不想配置的话,可以默认就用mysql用户去启动)在启动服务时会造成各种文件找不到,没权限等问题.当然如果你已经启动失败了,需要删除已经生成的文件避免再次因为权限冲突,如/data文件夹,mysql.sock这个东西一般在/tmp/下

以下是给遇到问题的朋友一种思路
第一步当然是解压下载的mysql,解压后在mysql下,然后需要在/etc/my.cnf配置datadir和basedir。在–initialize后面指定也可以如./bin/mysqld --initialize --user=mat --datadir=xxx --basedir=xxx,这不是错误的关键,所以接着往下看
在这里插入图片描述
执行./bin/mysqld --initialize --user=mat
–user就是填你想要创mysql的linux用户,这就是后面出现各种权限错误的主要源头。我这里随便取了一个mat。然后执行成功。如下,这一步只是在data文件下配置了各种数据文件。
在这里插入图片描述
这里如果执行失败,有可能是你的–initialize打错了,如下,这里要注意
在这里插入图片描述
然后把support-files下的mysql.server转到/etc/init.d/mysql下作为service服务启动。
然后执行service mysql start
然后一系列错误就来了。你大概率会碰见如下的图,类似的也一样。
Starting MySQL.Logging to ‘/usr/local/mysql/data/log.err’.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

在这里插入图片描述
遇见这里,首先查看日志,这里的log.err是/etc/my.cnf配置的log输出文件,名字随便取的。
当我们打开文件时并没有这个文件log.err。
在这里插入图片描述那大概率就是创建不了,没权限,
执行ls -ld data
在这里插入图片描述

会发现是mat创建的也就是我们初始化mysql时指定的用户,初始化后所有的文件都是由mat创建的,当我们执行service mysql start时也会在data文件夹下创建文件,就比如这个log.err文件,现在创建不了,就说明这个文件并不是mat创建的,现在我们把这个文件夹开启所有权限,chmod 777 data
在这里插入图片描述再执行后看data文件夹下log.err就有了
在这里插入图片描述看看这个log是谁创建的,mysql创建的。这就是为什么log.err一直找不到的原因,因为mysql和mat彼此权限冲突了。
在这里插入图片描述
观察log.err
在这里插入图片描述经典的not found (OS errno 13 - Permission denied)
其实到这里问题已经解决了,剩下什么乱起八糟的文件找不到创建不了,多半就是权限不够。那就是用户配置的不到位,比如初始化的时候指定–user,但是你没有在my.cnf中配置,就会造成在启动服务的时候和初始化是两个用户,在创建时会彼此造成权限冲突,给人一种找不到文件但是文件明明又在的错觉。
我这里重新配置了一下在my.cnf里也配置的user=mat,启动之后。然后log.err正常生成了,这个错误就简单了
在这里插入图片描述
说的是 Plugin mysqlx reported: ‘Setup of socket: ‘/tmp/mysqlx.sock’ failed, can’t open lock file /tmp/mysqlx.sock.lock’
mysql.sock找不到,直接ls -ld去看就知道这个玩意是mysql生成的,也就是刚刚我们还没改配置的时候启动生成的。删了再启动
在这里插入图片描述
在这里插入图片描述
启动成功。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可能的原因有很多,以下是一些可能的解决方法: 1. 检查mysql配置文件是否正确,特别是datadir和socket路径是否正确。 2. 检查mysql日志文件,查看是否有错误信息,例如权限问题、端口冲突等。 3. 检查系统资源是否足够,例如内存、磁盘空间等。 4. 尝试使用命令行启动mysql,查看是否有更详细的错误信息。 5. 如果是新安装的mysql,可以尝试重新安装或卸载重装。 6. 如果是升级mysql导致启动失败,可以尝试回滚到之前的版本或者等待官方修复。 希望以上方法能够帮助您解决问题。 ### 回答2: 在Linux下,MySQL启动失败可能是由于各种原因引起的。以下是一些可能的解决方法: 1. 检查MySQL的日志文件:首先,你可以查看MySQL的错误日志文件,通常位于/var/log/mysql/error.log。打开该文件,查找关于启动失败的错误信息,如数据库文件损坏、端口被占用等。根据日志中的错误信息,采取相应的措施来解决。 2. 检查端口是否被占用:使用命令netstat -tunlp | grep 3306(假设MySQL默认端口为3306)来检查MySQL监听的端口是否被其他进程占用。如果发现端口被占用,可以尝试使用不同的端口来启动MySQL,或者终止占用该端口的进程。 3. 修改MySQL的配置文件:有些情况下,MySQL启动失败可能是由于配置文件中的错误引起的。可尝试检查/etc/mysql/my.cnf(或/etc/my.cnf)配置文件的正确性,并进行相应的修改。特别是注意数据库文件存放路径、日志文件路径、用户权限等配置项。 4. 检查文件权限:MySQL启动需要有正确的文件权限设置。检查MySQL相关文件的权限是否正确,包括数据库文件、日志文件和配置文件等。通常,MySQL的文件属主应该是mysql用户,具有相应的读写权限。 5. 重置MySQL用户密码:有时候,MySQL启动失败可能是因为用户密码丢失或不正确导致的。可以尝试使用mysqladmin命令重置MySQL用户的密码,具体操作可以查阅相关文档或在线资源。 6. 重新安装MySQL:如果以上方法都无法解决问题,可以考虑重新安装MySQL。使用适合你Linux发行版的软件包管理工具,从官方源或其他可靠源安装最新版本的MySQL。 总之,MySQLLinux启动失败可能是由于多种原因引起的,需要仔细检查错误日志、配置文件、文件权限以及其他可能的问题,并根据错误信息采取相应的解决方法。 ### 回答3: 在LinuxMySQL启动失败的原因可能有很多,下面是一些常见的可能原因和解决方法: 1. 查看错误日志:MySQL的错误日志通常存储在/var/log/mysql/error.log或/var/log/mysqld.log文件中。通过查看错误日志可以找到导致启动失败的具体错误信息,根据错误信息来采取相应措施。 2. 确保与之前的MySQL实例没有冲突:有时候,在之前运行的MySQL实例没有正确关闭的情况下,再次启动MySQL会导致失败。可以通过执行"sudo service mysql stop"命令来确保之前的MySQL实例已经关闭。 3. 端口被占用:MySQL默认使用3306端口。如果该端口被其他应用程序占用,MySQL无法启动。可以通过执行"sudo netstat -tlnp | grep 3306"命令来检查是否有进程正在使用该端口。如果有,可以尝试更改MySQL的端口。 4. 磁盘空间不足:如果磁盘空间不足,MySQL无法启动。可以通过执行"df -h"命令来检查磁盘空间使用情况。如果发现空间不足,可以清理不必要的文件或者扩展磁盘空间。 5. 权限问题:MySQL的数据文件通常存储在/var/lib/mysql目录下。确保该目录和文件拥有正确的权限。可以通过执行"sudo chown -R mysql:mysql /var/lib/mysql"命令来更改所属用户和组。 6. MySQL配置文件错误:检查MySQL配置文件(通常位于/etc/mysql/my.cnf)中的配置项是否正确,特别是数据库目录和日志文件路径等。确保这些路径存在并且有正确的权限。 7. 数据库损坏:如果MySQL数据库文件损坏,也可能导致启动失败。可以尝试修复数据库文件或者使用备份文件恢复数据。 如果以上方法仍然无法解决问题,可以尝试在MySQL命令行下执行"mysql_upgrade"命令来修复数据库。如果问题依然存在,可能需要重新安装MySQL解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值