如何安装 MySQL 服务器以使其在重启后不会“消失”?

如何安装 MySQL 服务器以使其在重启后不会“消失”?

都好:

使用以下命令即可成功安装 Mysql 服务器:

sudo apt-get install mysql-server

在安装过程中,系统提示我选择 root 密码。安装后,我可以使用以下命令登录 mysql monitor:

mysql -u root -p

当系统提示时,我输入密码并成功登录。

问题:

当我重新启动服务器然后尝试登录 mysql 监视器时,输入密码后出现此错误:

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

当我查看时,/var/run/mysqld/我没有看到任何名为 的文件mysqld.sock。在重新启动之前,该位置有一个同名文件。它也在我的客户端 shell 程序 (mRemoteNG) 中以红色突出显示。

如果我尝试通过执行以下操作来创建该文件:

sudo touch mysqld.sock

它确实创建了,但没有以红色突出显示,当我再次尝试登录时,出现与之前相同的错误。

我已无数次尝试卸载并重新安装 mysql 和 mysql-server,但每次都会出现同样的问题。

我也尝试过 stropping 并启动 mysql 服务,但没有任何区别。

笔记:

只有在全新 Ubuntu 上第一次安装 mysql-server 时才会提示我选择密码。此后,无论何时卸载并重新安装它,它都不会提示我选择密码,只是说它已成功安装。

问题:

如何正确安装 mysql-server 以便它在重新启动服务器后始终存在?

答案1

mysql-server在 Debian 或 Ubuntu 上安装和运行的方式实际上是apt-get install mysql-server

如果这不起作用,那么你还有另一个问题,最好的解决办法是查看日志,试着找出它无法启动的原因——这个问题绝对是不是你是如何安装它的。

答案2

确保它已配置为在重启时正确启动。这通常意味着运行“update-rc.d mysqld defaults”(或非常类似的命令)。update-rc.d 将创建从 /etc/init.d 到启动脚本目录的符号链接,例如 /etc/rc3.d。

我不知道 mysqld 是否在你的 Ubuntu 版本上使用 Upstart 启动。在这种情况下,将有一个类似的过程将 mysqld 启动脚本放入 /etc/init。

答案3

取决于发行版,您不需要手动创建套接字文件。

使用 chkconfig (CentOS):

chkconfig --level 345 mysqld on

或者创建指向您希望执行服务的运行级别的符号链接:

# Mysql Startup
ln -s /etc/init.d/mysqld /etc/rc.d/rc3.d/S85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc4.d/S85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc5.d/S85mysqld

# MySQL clean shutdown
ln -s /etc/init.d/mysqld /etc/rc.d/rc0.d/K85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc6.d/K85mysqld

当您说您已尝试启动/停止服务但没有任何反应时,您的意思是:它在重启后自动启动方面没有做任何事情,还是在启动 mysql 服务期间没有做任何事情?

编辑:刚刚意识到你用 Ubuntu 标记了帖子,如果你使用的是 10.04+,请检查 Ubuntu 的 upstart 脚本,似乎 aptitude 应该在安装时为你放入一个。如果你认为它已配置为自动启动但未能自动启动,请检查 /var/log/mysql(d) 中的日志。

答案4

首先,删除您创建的 mysqld.sock 文件 - 服务器将自动创建该文件,如果该文件存在,可能会导致它不再启动。

使用 apt-get install mysql-server 安装它(就像你说的那样)。

重启。如果重启后没有运行,请执行“sudo /etc/init.d/mysql start”

检查它现在是否正在运行。如果没有,请查看 /var/log/mysql 和 /var/log/daemon.log 中是否有任何错误消息

为了使其始终在启动时启动,请运行“update-rc.d mysql defaults”

相关内容