我在Mac OS X Mountain Lion上安装了MySQL,但当我尝试MySQL -u root时,我得到了以下错误:
错误2002 (HY000):无法通过套接字/tmp/ MySQL连接到本地MySQL服务器。袜子”(2)
这个错误意味着什么?我该怎么解决呢?
我在Mac OS X Mountain Lion上安装了MySQL,但当我尝试MySQL -u root时,我得到了以下错误:
错误2002 (HY000):无法通过套接字/tmp/ MySQL连接到本地MySQL服务器。袜子”(2)
这个错误意味着什么?我该怎么解决呢?
执行命令: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
我找到了解决问题的办法。这确实是因为我的MySQL服务器没有运行。
这是由于MySQL没有正确设置在我的机器上,因此不能运行。
为了解决这个问题,我使用了一个在Mac OSX Mountain Lion上安装MySQL的脚本,该脚本必须安装丢失的文件。
链接如下:http://code.macminivault.com/
重要提示:该脚本将根密码设置为随机生成的字符串,保存在Desktop上,因此请注意不要删除该文件并记录密码。它还会在您的系统首选项中安装MySQL管理器。我也不确定是否删除任何现有的数据库,所以要小心。
这可能是因为MySQL已经安装但还没有运行。
要验证它正在运行,打开活动监视器,在“所有进程”下,搜索并验证你看到了进程“mysqld”。
你可以通过安装“MySQL.prefPane”来启动它。
以下是帮助我的完整教程: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html
正如其他人指出的,这是因为MySQL已经安装,但服务没有运行。启动MySQL服务的方法有很多种,对我有用的方法如下。
启动服务。
转到“系统首选项” 在底部窗格中应该有MySql图标。 双击启动“MySQL服务器状态”,按下“启动MySQL服务器”按钮
我的环境:
Mac Yosemite 10.10.3
安装包:/Volumes/mysql-advanced-5.6.24-osx10.8-x86_64
下面我包括了最新的说明从brew安装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加载mysql ~/Library/LaunchAgents/homebrew.mx .mysql。Plist,然后能够启动$ mysql和我的方式。
在您的终端上使用MySQL命令之前,您需要启动MySQL。为此,运行brew services start mysql。默认情况下,brew安装MySQL数据库时不需要root密码。要确保安全,请运行mysql_secure_installation。
连接时执行:mysql -uroot。Root是这里的用户名。
这发生在自制程序安装之后,由于权限问题而发生。下面的命令解决了这个问题。
sudo chown -R _mysql:mysql /usr/local/var/mysql
sudo mysql.server start
解决方案围绕:
修改MySQL的权限 sudo chown -R _mysql:mysql /usr/local/var/mysql 启动MySQL进程 sudo mysql。服务器启动
如果上面的命令不能帮你解决这个问题,那就试着指定主机
mysql -u root -p h127.0.0.1
看起来你的mysql服务器没有启动。我通常运行stop命令,然后重新启动:
mysqld stop
mysql.server start
同样的错误,这也适用于我。
在做了几个小时之后,对我有用的是 进入/etc/mysql/,编辑my.cnf文件。添加以下内容
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
警告:此方法将删除/usr/local/var/mysql文件夹中的所有数据库
我在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
这奏效了!
这里有很多其他有用的回答,但没有什么能解决我的问题。最终,我在这个网站或其他网站上找到的任何版本的MySQL都不适合我。
只需要从https://dev.mysql.com/downloads/file/?id=479114下载DMG(找到你需要的合适版本),然后让向导为我安装它,这是超级轻松的。另外一个手动步骤是将/usr/local/mysql/bin添加到PATH中。
如果酿造给你带来麻烦,我推荐这个选择。
更新-如果这仍然不能解决它,在通过DMG安装之前尝试完全清除mysql。请遵循以下说明:https://gist.github.com/vitorbritto/0555879fe4414d18569d
我花了好长时间才想明白。我在评论里看到的。在使用brew安装mysql后,启动服务(可能使用sudo brew services start mysql),然后运行:
$ mysqld
MySQL应该在后面为你运行。
我已经尝试了所有可能的方法来解决这个问题,比如ln -s /var/lib/mysql/mysql.袜子/ tmp / mysql。Sock,卸载并重新安装mysql,确保mysql在xampp上运行,但没有一个仍然工作。
最后,我打开my.cnf(配置文件)并复制套接字路径(确保复制完整路径,否则它将不起作用)。然后在我的终端中执行这个命令
mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
瞧,mysql启动了。
这个解决方案只会工作,如果你的MySQL显示在Xampp/Ampps上运行,但在终端它仍然没有连接到正确的套接字时,你已经尝试了类似的:
./mysql -u root
or
brew services start mysql
这个问题与/usr/local/var/mysql文件夹访问有关,我删除这个文件夹并重新安装mysql。
用brew卸载mysql: 卸载mysql 执行rm -r /usr/local/var/mysql Brew install mysql@8.0 Mysql -u root
这个解决方案很适合我! 但是你丢失了所有的数据库!警告!
我经历了这个问题,我设法运行mysql服务器使用下面的解决方案
通过.dmg(https://dev.mysql.com/downloads/mysql/5.7.html)安装mysql,你会在系统首选项中看到mysql服务面板,然后从面板中启动mysql并尝试
Mysql -u root -p
附图供参考
试试这个
rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7
我建议你去跑步
mysql.server start
在去之前
mysql -u root -p
为了确保mysql服务器在登录之前正在运行
当你启动/重启一台没有运行mysql服务器的机器时,这种情况会发生很多次。
我一直回到这篇文章,我已经遇到这个错误好几次了。这可能与在重新安装后导入所有数据库有关。
我用的是自制啤酒。唯一能帮我解决问题的是
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
今天早上,在我的机器决定关闭一夜之后,这个问题又出现了。现在唯一能解决这个问题的就是升级mysql。
brew upgrade mysql
升级到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
在尝试了许多解决方案之后,似乎最终成功的是通过IP连接。不再文件套接字被随机删除。
只需更新MySQL客户端配置(例如/usr/local/etc/my.cnf):
[client]
port = 3306
host=127.0.0.1
protocol=tcp
运行sudo chown _mysql /usr/local/var/mysql/*在尝试了所有这些SO答案中的大量选项后终于帮助了我。权限问题可能是由于机器关闭不当引起的。
如果你在OSX和XAMPP上,那么请遵循以下步骤:
感谢Jackstine的回答,我得以做到以下几点:
$ cat ~/.my.cnf
[mysql]
# CLIENT #
port = 3306
socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
我希望这能在我将来忘记的时候再次帮助我!
指定数据目录/usr/local/var/mysql/不可用。您可以删除服务器添加到其中的所有文件。
MacOS: $brew服务停止mysql $brew服务列表 卸载mysql 安装mysql $brew postinstall mysql 如果发现任何错误,则运行这些cmd ! 警告:这将删除该服务器上的所有数据库: $sudo rm -rf /usr/local/var/mysql $sudo rm /usr/local/etc/my.cnf $brew postinstall mysql $brew服务启动mysql mysql_secure_installation美元 安全安装完成后运行
$mysql -u root -p
恭喜你已经安装好mysql了!
在使用了以上所有的解决方案后,没有一个对我有效,但这个有效。
如果你已经使用HomeBrew安装了MySQL,然后检查系统首选项> MySQL在你的mac中,MySQL服务器已经停止,如果它正在运行,请单击停止MySQL服务器,并从终端写入命令mysqlserver.start启动MySQL。
如果它不工作,你也可以尝试:-
如果您已经安装了MySQL工作台,那么只需卸载MySQL工作台和MySQL,然后先安装MySQL,再安装MySQL工作台。
对于我的例子,只需将host指定为127.0.0.1,而不是localhost:
$ bin/mysql -uroot -p -h127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
在安装mysql的过程中,您可能会遇到一些问题,mysql服务可能无法运行。如果是这种情况,那么可能值得尝试以下步骤重新安装mysql,然后尝试连接。
sudo chown -R $(whoami) /usr/local/var
sudo chown -R $(whoami) /Library/Caches/Homebrew
brew uninstall mysql
brew install mysql
mysql.server start
mysql -uroot
Homebrew绝对不会使用标准的重新安装来修复权限,并且追踪哪个文件夹/文件损坏将花费比它值得的更长的时间。
在这种情况下-吹走mysql安装手动和重新安装通过自制。大约需要2分钟。
cd /usr/local/var
Sudo rm -rf mysql
安装mysql
Homebrew默认安装mysql是不安全的,所以如果你想要密码:
mysql_secure_installation
然后点火。
MySQL -uroot
在我的mac m1 macOS Monterey上安装MySQL后,使用brew安装MySQL,我得到了以下信息:
[System] [MY-013169] [Server] /opt/homebrew/Cellar/mysql/8.0.27_1/bin/mysqld (mysqld 8.0.27) initializing of server in progress as process 3624
[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
[ERROR] [MY-013236] [Server] The designated data directory /opt/homebrew/var/mysql/ is unusable. You can remove all files that the server added to it.
[ERROR] [MY-010119] [Server] Aborting
[System] [MY-010910] [Server] /opt/homebrew/Cellar/mysql/8.0.27_1/bin/mysqld: Shutdown complete (mysqld 8.0.27) Homebrew.
还有这个警告:
Warning: The post-install step did not complete successfully You can
try again using: brew postinstall mysql
之后,我尝试使用brew services启动MySQL,我得到了这个错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (2)
我设法修复它使用:
> rm -rf ~/opt/homebrew/var/mysql/
> brew postinstall mysql
现在您可以使用mysql -uroot或mysql -uroot -p连接。
1)->首先启动SQL server 2)(如果不存在)你必须在你安装的地方创建一个'etc'目录 Mysql ->在其中创建一个名为“Mysql .sock”的文件。 3)然后执行下面的行
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
4)重启服务器
5)找到mysql的路径。通过在线下执行Sock '
mysql -u root -p -h 127.0.0.1 -e "select @@socket"
现在你可以看到路径->复制该路径 6)复制完成后执行以下一行
mysql -u (username) -p -S (paste the path you copied)
7)现在,它起作用了。
没有工作。我只是重新安装mysql(不要担心你的数据保持不变)。
然后开始使用
sudo mysql.server start
这是所有。酿造服务mysql启动不启动mysql。
MacOS Monterey上。