mysql服务器启动失败

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

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

但是/var/run/mysqld文件夹中不存在mysqld.sock文件。 在执行ps aux | grep mysql 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 

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

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

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

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

 sudo service mysql restart 

(资源)

这解决了我的问题:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

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

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

在另一个上下文中,我遇到了它,因为mysql守护进程无法启动。 所以用命令启动守护进程 – mysqld start然后尝试启动服务。

我在日志文件中有相同的错误消息和相同的空白。 在我的配置文件(my.cnf)中,我已经指定我想使用myisam表,在[mysqld] -section中添加以下行:

 default-table-type = myisam 

升级mysql后,似乎这会导致mysql无法启动。 我把它改成了:

 default-storage-engine = myisam 

现在一切正常。

通过添加新的交换空间来增加可用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 

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

我的解决方案

检查是否在所有/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 

删除文件/var/lib/mysql/.run-mysql_upgrade,它应该启动

;)

“拥有权利的同时也被赋予了重大的责任”

我在/etc/mysql/my.cnf设置了max_allowed_packet = 0.5M时遇到了这个问题。

我通过将max_allowed_packet更改为1M来解决它。

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

 chown -R mysql: /var/lib/mysql 

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

来自/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% /上没有足够的空间/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# 

案件结案。 我希望它有所帮助。