Mysql 服务器安装

Mysql 服务器安装

我正在尝试安装 mysql 5.1.42 并在运行以下行后

sudo /usr/local/mysql/bin/mysqladmin -u root -p 密码

我收到此错误:

/usr/local/mysql/bin/mysqladmin:连接到“localhost”上的服务器失败错误:“无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)”请检查 mysqld 是否正在运行以及套接字:“/var/run/mysqld/mysqld.sock”是否存在!

我已经创建了 mysqld.sock 并授予它权限。但仍然出现相同的错误。

有人可以帮忙吗

谢谢

答案1

你确定 mysql 真的在运行吗?

ps aux | grep mysql

检查这一点。另外,通过 TCP/IP 连接通常比通过套接字连接更容易:

mysql -u root -p -h 127.0.0.1

答案2

您的客户端和服务器很可能对于套接字所在的位置有不同的看法。

如果你有一个 /proc 文件系统,找到服务器放置套接字的位置就很容易了。输出来自:

ps -elf | grep mysqld

应该包括其中一个 mysqld 服务器线程的进程 ID(任何线程都可以)。然后查看 /proc 以查看套接字被写入的位置:

sudo ls -l /proc/NNN/fd

其中 NNN 是来自“ps”调用的进程 ID。

一旦知道套接字在哪里,就将其位置传递到连接字符串中:

sudo /usr/local/mysql/bin/mysqladmin -u root -S /path/to/mysqld.sock -ppassword

套接字位置通常在 mysql.cnf 文件(/etc/mysql/mysql.cnf 或 /etc/mysql.cnf 或任何其他文件)的标题为“[mysqld]”的部分中指定。如果其中没有套接字条目,则服务器将使用默认编译的 /tmp/mysql.sock。您可以随时停止(或终止)服务器,并在配置文件中添加显式套接字条目,例如:

[mysqld]
socket=/var/run/mysqld/mysqld.sock

值得将相同的内容添加到[客户端]部分,以便所有客户端工具都有相同的想法。

相关内容