ubuntu mysql 启动失败

本文介绍了一种在Ubuntu 12.04 LTS系统中遇到的MySQL启动失败问题及其解决方案,涉及配置文件my.cnf的位置调整与初始设置,并提供了解决忘记root密码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统 版本ubuntu 12.04.5 LTS 64位

mysql版本5.7.11

在更新了libmysqlclient-dev后,再重新启动电脑和mysql ,启动mysql时失败,错误提示:

. * The server quit without updating PID file (/var/run/mysqld/mysqld.pid).

经过网上资料在查找 ,原来 在/etc/下没有mysql文件夹及my.cnf,现在存在了,是这个导致了启动失败,我将/etc/mysq/my.cnf文件重命名为my_bak.cnf,再启动mysql果然成功



mysql安装完成后,需要将mysql/support-file/my-deault.cnf复制目录为/etc/mysql/my.cnf

官方说明:

On Ubuntu 12-04 LTS, you will need to perform:

cp support-files/my-default.cnf /etc/mysql/my.cnf


instead of the step:

cp support-files/my-medium.cnf /etc/my.cnf


初始启动mysql 

bin/mysqld --initialize --user=mysql

第二次启动:

bin/mysqld --user=mysql


或者

bin/mysqld_safe --initialize --user=mysql

第二次启动:

bin/mysqld_save --user=mysql

除了使用--initialize(这个生成 一个随机 密码),初始root用户登录 不了,还可以使用--initialize-insecure,这个命令初始不生成密码,这个使用root用户可以 登录


在忘记root密码或初始生成 的随机密码不晓得情况可以 使用:

1、先停止mysql服务

2、创建一个文件,包含内容(mysql官方说明):

  1. MySQL 5.7.6及更高版本:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

    MySQL 5.7.5及更早版本:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
  2. 保存文件。此示例假定您为文件命名/home/me/mysql-init

3、启动服务:

mysqld --init-file=/home/me/mysql-init &


这样就能使用新设置的密码登录


初始mysql后需要设置远程连接权限,指定IP


grant all privileges *.* to 'root'@'%' identified by 'root' with grant option;


FLUSH PRIVILEGES;



### UbuntuMySQL 服务无法启动的排查方法 当遇到 **Ubuntu** 系统上的 **MySQL** 服务无法启动的情况时,可以按照以下方式逐步排查并解决问题。 #### 1. 检查日志文件 查看 MySQL 的错误日志可以帮助定位问题所在。通常情况下,MySQL 错误日志位于 `/var/log/mysql/error.log` 或者通过配置指定的位置。可以通过以下命令读取日志内容: ```bash sudo tail -n 50 /var/log/mysql/error.log ``` 如果未找到该路径,则需确认 `my.cnf` 配置中的日志位置设置[^2]。 #### 2. 检查端口占用情况 默认情况下,MySQL 使用的是 3306 端口。如果有其他程序占用了此端口,可能会导致 MySQL 启动失败。运行以下命令来检查是否有进程正在使用 3306 端口: ```bash sudo netstat -tulnp | grep :3306 ``` 若有冲突,可尝试更改 MySQL 配置文件中的监听端口号或者停止占用端口的服务[^4]。 #### 3. 数据目录权限验证 确保数据目录具有正确的权限和所有权。一般而言,MySQL 数据目录应由 `mysql:mysql` 用户组拥有。执行如下操作以修复可能存在的权限问题: ```bash sudo chown -R mysql:mysql /var/lib/mysql/ sudo chmod -R 750 /var/lib/mysql/ ``` #### 4. 存储引擎支持状态检测 某些存储引擎(如 InnoDB)可能出现异常状况从而阻止数据库正常加载。此时可通过禁用特定插件的方式重新初始化服务: ```sql [mysqld] skip-grant-tables=ON innodb_force_recovery=1 ``` 上述参数调整建议写入临时配置文件再重启测试效果如何[^1]。 #### 5. 容器化环境下的特殊处理 如果是基于容器部署的应用场景下发生此类现象,比如 LXC/LXD 或 Docker 下面构建实例时,请注意宿主机网络桥接规则以及资源配额限制是否合理安排好[^3]。 最后附带一段简单的 Python 脚本用于自动化部分诊断流程演示目的仅限学习交流不作为实际生产工具推荐使用前自行评估风险: ```python import os def check_mysql_status(): status=os.system('systemctl is-active --quiet mysqld') if int(status)==0 : print("Mysql Service Running Normally.") else: print("Error:Mysql Not Started!") check_mysql_status() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值