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#
案件结案。 我希望它有所帮助。