问题描述
我正在运行 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
最佳方法
打开终端( 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
启动守护进程,然后尝试启动服务。