对于新手:ERROR 2002(HY000):无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器

时间:2013-03-16 13:53:14

标签: mysql macos

我使用homebrew install mysql在Mac OS X Mountain Lion上安装了MySQL,但是当我尝试mysql -u root时出现以下错误:

  

ERROR 2002(HY000):无法通过socket'/tmp/mysql.sock'连接到本地MySQL服务器(2)

这个错误是什么意思?我该如何解决?

33 个答案:

答案 0 :(得分:88)

可能是因为MySQL已安装但尚未运行。

要验证它是否正在运行,请打开活动监视器并在“所有进程”下,搜索并验证您是否看到“mysqld”进程。

您可以通过安装“MySQL.prefPane”来启动它。

以下是帮助我的完整教程: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

答案 1 :(得分:72)

在终端上使用mysql命令之前,您需要启动MySQL。为此,请运行brew services start mysql。默认情况下,brew会在没有root密码的情况下安装MySQL数据库。要确保它运行:mysql_secure_installation

连接run:mysql -urootroot是此处的用户名。

答案 2 :(得分:49)

在家庭酿造安装后,这很开心。这是由于权限问题而发生的。以下命令解决了该问题。

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

答案 3 :(得分:42)

运行:brew info mysql

按照说明操作。从公式中的描述:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

希望这有帮助。

答案 4 :(得分:32)

正如其他人所指出的那样,这是因为安装了MySQL,但服务还没有运行。有很多方法可以启动MySQL服务,对我有用的是下面的内容。

启动服务:

  1. 转到"系统偏好"
  2. 在底部窗格中应该有MySql图标。
  3. 双击它以启动“MySQL服务器状态”'然后按“启动MySQL服务器”按钮
  4. 我的环境:

    Mac Yosemite 10.10.3

    已安装的软件包:/ Volume@mysql-advanced-5.6.24-osx10.8-x86_64

答案 5 :(得分:21)

解决方案围绕着:

  • 更改MySQL的权限

    sudo chown -R _mysql:mysql /usr/local/var/mysql
    
  • 启动MySQL进程

    sudo mysql.server start
    

只是添加了许多有用的答案here以及许多不同的帖子,尝试指定主机,如果以上命令无法解决此问题你,即

mysql -u root -p h127.0.0.1

答案 6 :(得分:12)

我的下方包括brew install mysql的最新说明,因此对此问题的新搜索可能会受益:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

在我的情况下,我现在通过launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist加载了mysql,然后能够启动$ mysql并继续前进。

我希望这可以帮助最近的问题排查工具!

答案 7 :(得分:10)

看起来你的mysql服务器没有启动。我通常运行s​​top命令,然后再次启动它:

mysqld stop
mysql.server start

同样的错误,这对我有用。

答案 8 :(得分:9)

当我重新启动mysql服务时,这解决了我的问题。跑吧:

brew services start mysql

答案 9 :(得分:9)

我在Homebrew上安装了MySQL,对我来说唯一解决此问题的方法是重新安装MySQL。

在我的公司笔记本电脑上,我无权通过Homebrew从计算机上卸载MySQL:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

因此,我改为手动删除并重新安装了MySQL:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

那行得通!

答案 10 :(得分:4)

指定的数据目录/usr/local/var/mysql/不可用。您可以删除服务器添加到其中的所有文件。

MacOS:
$brew services stop mysql
$brew services list
$brew uninstall  mysql

$brew install mysql
$brew postinstall mysql

If Any error found then run those cmd
$sudo rm -rf /usr/local/var/mysql
$sudo rm /usr/local/etc/my.cnf
$brew postinstall mysql


$brew services start mysql
$mysql_secure_installation
enter image description here 完成安全安装的所有过程,然后运行

$mysql -u root -p

恭喜您刚刚设置了 mysql!

答案 11 :(得分:3)

我找到了解决问题的方法。确实是因为我的MySQL服务器没有运行。

这是因为MySQL没有在我的机器上正确设置,因此无法运行。

为了解决这个问题,我使用了一个在Mac OSX Mountain Lion上安装MySQL的脚本,该脚本必须安装了丢失的文件。

以下是链接:http://code.macminivault.com/

重要说明: 此脚本将root密码设置为随机生成的字符串,并将其保存在桌面上,因此请注意不要删除此文件并记下密码。它还在您的系统首选项中安装MySQL管理器。我也不确定是否删除了任何现有的数据库,所以要小心。

答案 12 :(得分:3)

哦,这花了我一段时间才能弄清楚。我在评论中看到了。使用brew安装mysql之后,并启动服务(也许使用sudo brew services start mysql),然后运行:

$ mysqld

此后,MySQL应该正在运行。

答案 13 :(得分:3)

在我的情况下,这只是删除锁定文件的问题。

sudo rm -f /tmp/mysql.sock.lock

答案 14 :(得分:3)

对我而言,这很简单:

/usr/local/opt/mysql/bin/mysqld_safe

而不是mysqld

答案 15 :(得分:2)

经过几个小时的努力,对我有用 转到/ etc / mysql /并编辑my.cnf文件。添加以下

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

答案 16 :(得分:1)

我建议您运行

  mysql -u root -p

在进入

之前
CREATE TABLE Eventplan
( PlanNo VARCHAR(8) NOT NULL,
EventNo VARCHAR(8) UNIQUE NOT NULL,
Workdate DATE,
Notes VARCHAR(8),
EmpNo VARCHAR(8) ,
CONSTRAINT PK_PlanNo PRIMARY KEY(PlanNo),
CONSTRAINT EventNo FOREIGN KEY (EventNo)
REFERENCES Eventrequest(EventNo),
CONSTRAINT EmpNo FOREIGN KEY (EmpNo)
REFERENCES Employee(EmpNo)
);

为了确保mysql服务器在尝试登录之前正在运行

在没有运行mysql服务器的情况下启动/重新启动计算机的次数很多次。

答案 17 :(得分:1)

在使用上述所有解决方案后,对我来说没有任何效果,但它奏效了。

我已经使用 HomeBrew 安装了 MySQL,然后在您的 Mac 中检查 System Preferences > MySQL 如果 MySQL Server 正在运行,则停止它enter image description here单击停止 MySQL 服务器 并从终端写入命令 mysqlserver.start 启动 MySQL。

如果它不起作用你也可以尝试:-

如果您还安装了 MySQL Workbench,那么只需卸载 MySQL workbench 和 MySQL,然后先安装 MySQL,然后安装 MySQL Workbench。

答案 18 :(得分:1)

只有这才对我有用 const arrayOfArtistNames = ['Eminem', 'Eminem', 'Eminem', 'Biggie', 'Dr. Dre', 'Dr. Dre', 'Biggie'] arrayOfArtistNames.map(name => findOrCreateArtist(name)) const findOrCreateArtist = async (artist_name) => { return await ArtistIA.findOrCreate({ where: { artist_name: artist_name }, defaults: { artist_bio: "" } }).then((response) => { response = JSON.parse(JSON.stringify(response)); return response[0]; }).catch(err => { console.log("uploads.js", 273, err); }); }; (尝试所有答案后)

答案 19 :(得分:1)

我已经尝试了所有可能的方法来解决此问题,例如ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock,卸载并重新安装mysql,请确保mysql在xampp上运行,但均未运行它仍然有效。

最后,我打开my.cnf(配置文件)并复制套接字路径(确保复制完整路径,否则将无法使用)。然后我在终端上执行此命令

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

瞧瞧,mysql启动了。

仅当您的MySQL显示在Xampp / Ampps上运行时,此解决方案才有效,但是在终端中,当您尝试执行以下操作时,它仍未连接到正确的套接字:

./mysql -u root

brew services start mysql

我希望这会有所帮助!

答案 20 :(得分:0)

此问题与/usr/local/var/mysql文件夹访问有关,我删除了该文件夹并重新安装mysql。

  1. 使用brew卸载mysql:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

此解决方案对我来说很好!

答案 21 :(得分:0)

我遇到了这个问题,并设法使用以下解决方案运行mysql服务器

通过.dmghttps://dev.mysql.com/downloads/mysql/5.7.html)安装mysql,您将在系统偏好设置中获得mysql服务面板,然后从该面板启动mysql并尝试

mysql -u root -p

图片仅供参考

System Preferences

Mysql panel

答案 22 :(得分:0)

尝试一下

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

答案 23 :(得分:0)

我继续回到这篇文章,我多次遇到此错误。全新安装后,可能与导入所有数据库有关。

我正在使用自制软件。唯一为我修复的东西:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

今天早上,在我的机器决定关闭一夜后,问题再次出现。现在唯一解决此问题的方法是升级mysql。

brew upgrade mysql

答案 24 :(得分:0)

升级到Catalina OS后遇到类似的问题。运行mysqld命令后,我发现日志文件存在一些问题。对于其他人可能会有所不同。

$ mysqld

问题是

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

通过创建它并应用适当的权限来解决它。

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

重新启动MySQL

brew services restart mysql@5.7

问题已解决。

mysql -uroot -proot

答案 25 :(得分:0)

尝试了许多解决方案后,似乎最终解决问题的方法是通过IP连接。不再随机删除文件套接字。

只需使用以下命令更新您的MySQL客户端配置(例如/usr/local/etc/my.cnf

[client]
port = 3306
host=127.0.0.1
protocol=tcp

答案 26 :(得分:0)

在尝试所有这些答案之后,运行sudo chown _mysql /usr/local/var/mysql/*最终为我提供了帮助。权限问题可能是由于计算机不正确关闭引起的。

答案 27 :(得分:0)

只需在终端中点击“酿造服务启动mysql”

答案 28 :(得分:0)

如果您在OSX上使用XAMPP,请按照以下步骤操作:

由于Jackstine的回答,我能够执行以下操作:

$ cat〜/ .my.cnf

[mysql]

# CLIENT #
port                           = 3306
socket                         = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

希望以后我忘了这能再次对我有帮助!

答案 29 :(得分:0)

这里还有许多其他有用的响应,但是对我来说并没有解决任何问题。最终,我在本网站或其他网站上找不到的任何软件都无法从Homebrew获得任何版本的MySQL。

仅从https://dev.mysql.com/downloads/file/?id=479114下载DMG(查找所需的适当版本)并让向导为我安装DMG是非常轻松的。唯一的其他手动步骤是将/usr/local/mysql/bin添加到我的PATH。

如果brew给您带来麻烦,我建议您使用此选项。

更新-如果仍然不能解决问题,请尝试完全清除mysql,然后再通过DMG安装。请遵循以下指示:https://gist.github.com/vitorbritto/0555879fe4414d18569d

答案 30 :(得分:0)

我通过将 localhost 更改为 127.0.0.1 设法解决了这个问题

答案 31 :(得分:0)

在我的情况下,在安装MAMP之后,从终端访问mysql就是给出了相同的套接字错误。最后他想要的只是重启并且正在运行。

答案 32 :(得分:-3)

  1. 卸载MySQL。
  2. 删除/usr/local/var/mysql/
  3. 安装MySQL。