ubuntu 数据库无法正常启动

本文记录了解决MySQL服务无法启动及连接问题的过程。作者通过检查错误日志定位到具体原因,并修复了文件权限问题,最终成功启动MySQL服务。

重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

于是,我检察mysql状态:

       > /etc/rc.d/init.d/mysqld  status  

          显示stop,未运行。

       >/etc/rc.d/init.d/mysqld  restart

         Stopping mysqld: [ OK ]

         MySQL Daemon failed to start.

         Starting mysqld: [ FAILED]

       >ps -ef | grep mysql

         root 28221 27474 0 14:18 pts/0 00:00:00 grep mysql   只有这一条

至此,我可以确定,mysql无法启动。

我开始排错,首先发现/tmp/mysql.sock不存在

        >vim /etc/my.cnf

          socket=/var/lib/mysql/mysql .sock

          /var/lib/mysql/mysql .sock同样不存在

        >find / -name mysql.sock

          显示为空,未查询到mysql.sock文件,mysql.sock文件丢失了。

我看网上有人说mysql.sock套接字文件可以简单地通过重启服务器重新创建得到它,

         >init 6      重启命令

           重启后发现错误还是那样,没有任何改变,mysql.sock重启服务器未自动生成。

接下来了解到mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。

我尝试安全启动模式,mysqld_safe试图通过工作目录找到服务器和数据库,但mysqld_safe还是失败。

       >mysqld_safe &
         Starting mysqld daemon with databases from ....../mysql/var 
         STOPPING server from pid file   .......pid

         130802 15:17:11 mysqld ended

各种命令尝试无效的情况下,我开始了本次最大的收获----学会看错误日志。

在错误日志中,启动失败的原因极为明显,file ‘./mysql-bin。000004’ not found,failed to open!

 mysql开启了bin日志功能,到数据库根目录查看该文件是存在的,可能是文件权限的问题。

       >chown -R mysql:mysql /....../mysql/var

       >mysqld_safe &

       >/etc/rc.d/init.d/mysqld  restart

         Stopping mysqld: [ OK ]

         Starting mysqld: [ OK]

   成功启动了!~

  此时mysql.sock文件出现了,在/var/lib/mysql/mysql .sock。如下图所示,以”s”开头的文件都是socket文件。

          > mysql -u root -p

             ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

/tmp/mysql.sock

          解决这个错误很简单,因为/tmp/mysql.sock不存在,用这样的方法:

          >ln -s /var/lib/mysql/mysql .sock   /tmp/mysql .sock

以”l”开头的文件是软链接文件。或者可以通过修改/etc/my.cnf文件来修正它。

   成功解决了!~

就是这样一个问题折腾了我这么久,错误日志让它无所遁形。查看错误日志可以明确问题所在,而不是像我之前那样盲目的找错。

俗话说授人以鱼不如授人以渔,学会查看日志,你也可以方便快捷的解决问题了。

错误使人进步,我与这个错误斗争了四个多小时,对linux的“一切皆文件”这句话有了更深的了解,对我学习文件系统管理(目录树)有很大的帮助,让我的思维真正的从windows操作系统转向成linux系统。并最终解决问题,很有成就感,我喜欢这种感觉。

### 如何在 Ubuntu 上执行数据库操作 #### 启动 MySQL 服务 为了确保能够顺利进行数据库的操作,在开始之前应当确认 MySQL 服务已经在运行。这可以通过下面的命令来实现: ```bash sudo systemctl start mysql ``` 如果希望 MySQL 随着系统的启动自动开启,则可利用如下指令设置开机自启[^3]。 #### 进入 MySQL 命令行界面 一旦 MySQL 正常工作,就可以通过命令行工具访问它了。通常情况下,管理员会使用 `mysql` 工具登录到服务器中去管理数据。对于拥有 root 权限的情况来说,可以直接输入以下命令进入 MySQL 控制台: ```bash mysql -u root -p ``` 此时会被提示输入密码,正确填写之后即可成功登陆。 #### 创建新数据库与表结构 进入到 MySQL 提示符下以后,可以根据需求创建新的数据库以及定义相应的表格架构。例如要建立名为 "testdb" 的数据库及其内部的一张简单测试表 "users" ,可以依次执行下列 SQL 语句: ```sql CREATE DATABASE testdb; USE testdb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ); ``` 以上代码片段展示了怎样构建一个基本的数据存储单元——即包含两个字段(name 和 email)的一个 user 表格,并指定了主键为自增整数类型的 ID 列。 #### 对 Oracle 数据库的基本操作 针对 Oracle 数据库而言,在完成安装过程后同样需要先激活相应实例才能进一步开展其他活动。不过具体步骤可能会有所不同,因为 Oracle 的配置相对复杂一些。一般建议参照官方文档来进行详细的环境搭建和初始化设置[^1]。 至于日常使用的查询、更新等常规任务则可以在连接至目标实例后的 DISQL 或者 SQL*Plus 中完成。比如想要查看当前有哪些正在运行中的实例列表,可以用这样的 SELECT 查询语句尝试获取信息: ```sql SELECT * FROM v$instance; ``` 请注意这里的语法适用于 Oracle 特定版本;如果是像达梦这类兼容性产品的话可能还需要额外指定主机地址及端口号参数以便正常通信[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值