【问题标题】:MySQL Server 5.6 won't start on CentOS 7 [closed]MySQL Server 5.6 不会在 CentOS 7 上启动 [关闭]
【发布时间】:2015-11-01 17:04:58
【问题描述】:

我在 DigitalOcean 有一个运行最新 CentOS 7 的 512MB VPS。使用以下命令安装了 MySQL 5.6:

yum localinstall http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

我正在为我的 my.cnf 使用以下内容:

[mysql]

# CLIENT #
port                           = 3306
socket                         = /var/lib/mysql/mysql.sock

[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = MyISAM
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 128M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M
max-connect-errors             = 1000000

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 100
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 100

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 0
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

当我尝试使用这些命令变体启动 MySQL 时,没有任何反应:

[root@server ~]# /etc/init.d/mysql start
-bash: /etc/init.d/mysql: No such file or directory

[root@server ~]# /etc/init.d/mysqld start
-bash: /etc/init.d/mysqld: No such file or directory

所以,我尝试了这个方法:

[root@server ~]# service mysql start
Redirecting to /bin/systemctl start  mysql.service

它一直停留在该消息上,没有发生任何事情。我检查了 ps aux | grep mysql 我没有看到服务正在运行:

[root@server ~]# ps aux | grep mysql
root     10688  0.0  0.1 115212   644 ?        Ss   20:08   0:00 /bin/bash /usr/bin/mysql-systemd-start post
root     12646  0.0  0.2 132520  1396 pts/0    S+   20:16   0:00 /bin/systemctl start mysql.service
root     12852  0.0  0.1 112640   960 pts/1    S+   20:17   0:00 grep --color=auto mysql

有什么想法吗?

【问题讨论】:

  • 过了一会儿,我收到了这条消息:Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.
  • SELinux 是否以强制模式运行? /usr/sbin/getenforce。如果是,请将其设置为 Permissive 模式并尝试再次启动 MySQL --/usr/sbin/setenforce 0 如果这允许您启动它,那么您需要在重新启用 SELinux 之前追踪首先阻止它启动的原因。跨度>
  • 我注意到您在/var/lib/mysql/mysql.pid 中有 pid 文件,我认为这不是标准位置 (/var/run/mysql/mysql.pid/)。仅此一项几乎肯定会导致 SELinux 出现问题(我从经验中知道)
  • @MichaelBerkowski SELinux 未启用:[root@server ~]# /usr/sbin/getenforce Disabled
  • 然后检查您的日志。

标签: mysql centos centos7


【解决方案1】:

如果没有交换,MySQL 5.6 将无法在 512M VM 上启动。该错误很可能是内存不足的情况。您可以选择:

  1. 安装 MySQL 5.7(当前为 RC2)。您正在使用的存储库有这个可用的as an option。 5.7 在它的默认配置中实际上使用更少的 RAM。

  2. 修改 5.6 服务器的配置以使用更少的 RAM。我有一个例子available here

  3. 启用交换。

【讨论】:

【解决方案2】:

对于 CentOS 7,mysql 正在过渡到 mariadb。在 /usr/lib/systemd/system 下应该找到 mariadb.service 文件。然后简单地运行

sudo systemctl start mariadb.service

然后当你运行 /usr/bin/mysql 时,它就可以工作了!

【讨论】:

  • 这对我有用(在我的情况下,我从 webmin 安装了 mysql,当我检查 yum 历史记录时,命令是:yum -y install mariadb maria)。谢谢。
  • 这个答案对我来说很好,非常感谢@joseph-camaioni
【解决方案3】:

我认为您需要启用交换内存。试试这个。

使用 CentOS 7 启用交换内存 ram

$ sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ swapon -s

【讨论】:

    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多