![“无法通过”套接字错误连接到本地 MySQL 服务器](https://linux22.com/image/808755/%E2%80%9C%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E2%80%9D%E5%A5%97%E6%8E%A5%E5%AD%97%E9%94%99%E8%AF%AF%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%9C%AC%E5%9C%B0%20MySQL%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我安装了 mysql 并尝试启动
/usr/local/mysql/bin# ./mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/usr/local/mysql/bin#
任何想法?
答案1
mysql 可以从 upstart 启动。基本上,你安装 mysql-server 包。你可以轻松地在 synaptic 中搜索 mysql-server 包并安装它。安装过程中会提示你输入 root 密码[即 mysql 用户 root 密码]。之后,在终端中只需执行
sudo start mysql
或者
sudo service mysql start
Mysql 通常在启动时启动,因此您也可以运行它。
只是ps aux | grep mysql
为了看看它是否正在运行。
答案2
Ubuntu 11.10: sudo dpkg-reconfigure mysql-server-5.1
Ubuntu 12.04: sudo dpkg-reconfigure mysql-server-5.5
按照说明然后重新启动。
当您从一个 ubuntu 版本升级到另一个版本时,配置可能会出现问题。通常与 mysql 守护进程 mysqld 的启动过程有关)
答案3
我看到您正在使用 /tmp/ 作为 mysql.socket,因此您没有安装 ubuntu 默认自带的 mysql 5.1,或者您正在安装 mysql 5.5.x(如果是这种情况,您需要在问题中提及)。无论如何,您可以做的一些事情是:
确认 mysql 尚未运行:
ps -e|grep -i 'mysqld'
如果它出现则终止它。sudo killall -9 mysqld
如果它没有终止,请从您在此处执行的 ps 中获取 pid,然后kill -9 PID
“尝试”通过运行mysql,
/etc/init.d/mysql start
如果它给你与上面完全相同的错误,那么你需要复制mysql.服务器文件从您下载的mysql中获取,该文件可以在support-files
您下载的mysql文件夹内的文件夹中或/usr/local/mysql
文件夹中找到,并将其复制到/etc/init.d/mysql
(例如:cp mysql.server /etc/init.d/mysql
并赋予它可执行权限chmod +x /etc/init.d/mysql
,然后再次运行它。如果仍然有问题,请编辑配置文件
/etc/my.cnf
(如果安装了 5.5)或/etc/mysql/mysql.conf
(如果安装了 5.1),并将所有/tmp/mysql.socket
行更改为/var/run/mysqld/mysqld.sock
。请注意,配置文件也可以位于/etc/mysql/my.cnf
。测试一下,但请添加你正在使用的 mysql,5.1 或 5.5。我在这里提到 5.5 是因为 5.5 使用 /tmp,而 5.1 使用默认的 /var/run
如果您碰巧使用的是 5.5,那么请记住从 /etc/mysql、/var/lib/mysql 和 /user/lib/mysql 中删除旧 5.1 的目录
答案4
在连接参数中将服务器名称从“localhost”更改为“127.0.0.1”,我相信它会起作用。