我使用homebrew install mysql
在Mac OS X Mountain Lion上安装了MySQL,但是当我尝试mysql -u root
时出现以下错误:
ERROR 2002(HY000):无法通过socket'/tmp/mysql.sock'连接到本地MySQL服务器(2)
这个错误是什么意思?我该如何解决?
答案 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 -uroot
。 root
是此处的用户名。
答案 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服务,对我有用的是下面的内容。
启动服务:
我的环境:
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服务器没有启动。我通常运行stop命令,然后再次启动它:
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
$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 正在运行,则停止它单击停止 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。
使用brew卸载mysql:
brew uninstall mysql
sudo rm -r /usr/local/var/mysql
brew install mysql@8.0
mysql -u root
此解决方案对我来说很好!
答案 21 :(得分:0)
我遇到了这个问题,并设法使用以下解决方案运行mysql服务器
通过.dmg
(https://dev.mysql.com/downloads/mysql/5.7.html)安装mysql,您将在系统偏好设置中获得mysql服务面板,然后从该面板启动mysql并尝试
mysql -u root -p
图片仅供参考
答案 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)
/usr/local/var/mysql/
。