一,权限问题导致mysql无法启动,在linux中权限是个很重要的东西,所以大多数据mysql无法启动都与
权限有问题
错误提示
World-writable config file ‘/opt/lampp/etc/my.cnf’ is ignored
[ERROR] Fatal error: Can’t change to run as user ’mysql’ ;
Please check that the user exists!
昨天的的xampp问题集锦中,已经解决了一些问题,不过今天重启又出现问题,废话不多说,下面三解决
方案。
进入lampp/etc/把my.cnf的权限改为755 重启lampp,正常。同理,把phpmyadmin的权限也改成755即可。
至此,问题全部解决。
PS:出于安全考虑,xampp不允许将mysql和phpmyadmin的权限范围设为最大,在安装时注意不要把整个
lampp目录的权限设为777。
二,Ubuntu 升级后 MySQL 无法启动
升级结束后我开始测试我的程序。我选择了手动创建数据库,但在运行 MySQL 客户端的时候,却出现了
错误信息:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/run/mysqld/mysqld.sock’ (2)
无论我用普通帐号还是 root 帐号都出现了这种问题。开始时我以为是个小问题,于是重启 MySQL,结
果发现启动不起来了,运行 service mysql restart 的结果是:
代码如下 | 复制代码 |
start: Job failed to start |
这时,我意识到可能是 MySQL 系统出问题了,去浏览器访问我的 blog,果然提示数据库连接不正常。
我上网搜索,确实有人有过这种经历,但原因是因为硬盘空间满了,清除出一些空间来就解决了。还有
人说跟 /var/run/mysqld 的权限有关,我试过修改权限,但仍然不管用。
这时我有点着急,因为我的数据并没有备份。系统升级这种事我做过几次,都很正常,从来没有出现过
这种情况。如果我又数据库的备份,我大不了重新做一次系统,然后把数据导入回去就行了。现在却没
办法了。我尝试着备份了 /var/lib/mysql 目录后删除 MySQL,再重新安装 MySQL,结果还是不行。
我查看了 /var/log/mysql/error.log,结果里面相关的内容是:
代码如下 | 复制代码 |
120514 11:16:44 [Note] Plugin 'FEDERATED' is disabled. 120514 11:16:44 [Note] /usr/sbin/mysqld: Shutdown complete |
我看了半天也没怎么看出门道来,InnoDB 我在刚开始安装 MySQL 之后马上就关上了啊,普通的网站根
本用不到 InnoDB,而且它又十分的耗内存,因此这是 VPS 的内存优化必做步骤之一。
我只好又查其它的文档,也做了不少尝试。比如说,配置文件中的 default-character-set 选项过期了
,新的选项是 character-set-server,等等。我改了一些这种选项,但总是没有效果。
最后,我因为错误记录中提到了 InnoDB,就抱着试一试的心情,把配置文件中的 skip-innodb 这一行
给注释掉了,结果启动 MySQL,竟然成功了。我无论如何也想不到竟然会在这个地方出问题。
解决了问题后我成功的让我的程序可以访问 MySQL 数据库了。然后我想找找为什么关掉 InnoDB 会让
MySQL 无法启动。当我检查我为了这个程序所创建的数据库时,惊讶的发现了这个数据表竟然使用了
InnoDB 引擎,而不是我以为的 MyISAM。抱着这种猜想,我搜索了 Google,果然发现了,从版本 5.5
之后,MySQL 默认的引擎成了 InnoDB。
三,修改编码后导致mysql无法启动
Ubuntu 12.04 MySQL改utf-8 启动不了
代码如下 | 复制代码 |
default-character-set=utf8 报错: start mysql. The restart(8) utility is also available. |
这么写OK了:
代码如下 | 复制代码 |
On MySQL 5.5 I have in my.cnf [mysqld] |