如何在 FreeBSD 上检查 mysql 状态?

How to check mysql status on FreeBSD?

首先,我会写下我为什么要这样做。

当我在 Rails' 数据库 rake 命令上 运行 a Ruby 时,它显示:

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我创建了那个文件:

touch /tmp/mysql.sock

和 运行 再次执行命令。我显示:

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

我已经通过Google搜索过了,大多数人说应该检查mysql的状态。

我现在使用的是 FreeBSD 9.1。从这篇文章中有一个很好的方法来做到这一点:

http://www.cyberciti.biz/faq/freebsd-start-stop-restart-mysql-server/

但不幸的是,我在 /usr/local/etc/rc.d/ 目录中找不到 mysql-server

我想知道我的 mysql 在哪里,所以我 运行:

whereis mysql

它只给我看了这个:

mysql: /usr/local/bin/mysql

但是当我尝试时:

/usr/local/bin/mysql status

显示:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

换句话说,如果我尝试使用此命令连接我的 mysql:

mysql -utom -p1234 -h my_mysql_host_name

我可以连接我的本地数据库。

我不知道 /tmp/mysql.sock 的原因。这似乎是一个糟糕的问题。

状态:

# service mysql-server status
mysql is running as pid 45699.
# ps 45699
  PID  TT  STAT    TIME COMMAND
45699  ??  I    0:00.50 [mysqld]

您是否遵循了 MySQL 安装说明并确保在安装 mysql 之前系统上安装了 GNUMake?听起来你的安装只完成了一半......如果有的话。

您应该在 /usr/local/etc/rc 中有一个启动脚本。d/mysql-server -- 它的缺失表明安装不正确。

最后,您不能只 "create" /tmp 中的套接字 (.."touch /tmp...) 并期望它能正常工作。它不存在是有原因的...可能是因为您的安装未完成。

一旦你正确安装了东西,你应该可以通过输入

来获取状态

https://dev.mysql.com/doc/refman/5.1/en/freebsd-installation.html

类型service mysql-server status 如果您发现 mysql 不是 运行。 检查文件 etc/rc.conf 检查你的行 mysql_enable="YES" 如果你手动添加了。

之后service mysql-server start

如果现在还不能正常工作,请执行以下步骤: -类型 service mysql-server stop -继续 var/db 并删除 mysql 文件夹 -继续 /tmp 并删除 mysql.sock - 在控制台中输入 service mysql-server start - 现在检查 mysql 是否是 运行 进程。service mysql-server status

如果现在可以创建一个用户:

mysql -u root
GRANT ALL PRIVILEGES ON *.* TO root@"%"
IDENTIFIED BY 'password' WITH GRANT OPTION;

FLUSH PRIVILEGES;

大编辑: 如果你还没有安装mysql: 升级端口:portsnap fetch extract 移动到 mysq 目录:cd /usr/ports/databases/mysql56-server 安装:make install clean

另一个编辑: 如果你想减少时间,你可以使用pkg。和他一起安装 mysql 大约需要 5 分钟。

使用 pkg : pkg install mysql56-server 完成 select Y 以确认安装并等待。现在配置 rc.conf 并设置 mysql 用户,完成