mysql服务器启动失败


28

我正在运行ubuntu服务器。当我尝试登录到mysql(正在运行)时,出现以下错误

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

但是mysqld.sock文件在/var/run/mysqld文件夹中不存在。在执行ps aux | grep mysql命令时,我意识到mysql服务器未运行。

然后我尝试使用重新启动mysql服务器

service mysql start
service mysql restart
/etc/init.d/mysql start

但是,启动过程在所有3种情况下均失败。 /var/log/mysql/mysql.log/var/log/mysql/mysql.err文件为空。

但是/var/log/error.log显示以下信息:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete


1
输出是ls /var/lib/mysql/ib_logfile*什么?
jobin 2014年

ls:无法访问/ var / lib / mysql / ib_logfile *:无此类文件或目录
2014年

1
您的/ var / lib / mysql目录可用于mysql吗?
2014年

1
我是linux新手。.我使用chmod 777更改了/ var / lib / mysql的权限 您能否建议我如何检查这是否是正确的方法?
2014年

Answers:


28

打开终端(Ctrl+ Alt+ t),并执行以下:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

并注释掉线record_buffer=64M/etc/mysql/my.cnf [1]

然后使用以下命令重新启动msyql:

sudo service mysql restart

(资源)


1
我运行了您提到的命令
。.

1
另外,现在错误日志显示:-140425 15:09:11 InnoDB:受支持的最高文件格式是梭子鱼。140425 15:09:12 InnoDB:等待后台线程启动140425 15:09:13 InnoDB:5.5.37已启动; 日志序列号940942258188 140425 15:09:13 [错误] / usr / sbin / mysqld:未知变量'record_buffer = 64M'140425 15:09:13 [错误]中止140425 15:09:13 InnoDB:正在启动关机... 140425 15:09:14 InnoDB:关闭已完成;日志序列号940942258188 140425 15:09:14 [注意] / usr / sbin / mysqld:关闭完成
2014年

不。我没有执行sudo服务mysql重新启动。
2014年

你可以尝试做sudo service mysql start吗?
jobin 2014年

我应该杀死正在运行的mysql重新启动进程吗?会引起什么问题吗?
2014年

9

这解决了我的问题:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
应用这些步骤后,我的数据库被删除了。现在我该怎么办?
阿米特·亚达夫

7

我通过以下方式解决了这个问题:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

在另一种情况下,我遇到了它,因为mysql守护程序无法启动。因此,使用命令启动守护程序- mysqld start然后尝试启动服务。


2

我在日志文件中有相同的错误消息和相同的空白。在我的配置文件(my.cnf)中,通过在[mysqld]部分中添加以下行,我指定了要使用myisam表:

default-table-type = myisam

升级mysql后,这似乎导致mysql无法启动。我将其更改为:

default-storage-engine = myisam

现在一切正常。


1

通过添加新的交换空间来增加可用RAM也可能会有所帮助。步骤在这里

确保您创建的/ swapfile大小小于以下所示的可用空间

df -h

例如,对我来说df-h的输出是:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

所以我用2 G创造了

sudo fallocate -l 2G /swapfile

然后启动服务

sudo /etc/init.d/mysql restart

希望这可以帮助。祝一切顺利。


1

我的解决方案:

检查是否在所有/etc/rc1.d ... /etc/rc5.d中,mysql脚本均以S(Ex S10mysql)而不是K AS K10mysql开头。

说明:K前缀带有stop的加载,一种kill服务;S前缀以start参数开头。

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

就我而言,这是一个空间问题。检查是否还有足够的空间。

/var/log/mysql/error.log两行中得到一些提示:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

我可以看到这是一个空间问题。

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

从这里,我可以看到虚拟服务器上没有足够的空间/dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /。我考虑过迁移或增加虚拟驱动器,但是我决定先删除不必要的文件。

因此,必须清理不需要的缓存和文件:

#apt-get clean
#apt-get -f autoremove

然后,不要忘记随后删除mysql损坏的日志文件。当您重新启动mysql时,它们将再次生成

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

检查您的mysql服务器服务,它可能已启动并正在运行

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

案件结案。希望对您有所帮助。



0

max_allowed_packet = 0.5M进去时遇到了这个问题/etc/mysql/my.cnf

我通过更改max_allowed_packet为解决了1M


0

下面的命令解决了我的问题,mysql之后可以启动。(在某些情况下可能有用)

chown -R mysql: /var/lib/mysql
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.