无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)
Posted
技术标签:
【中文标题】无法通过套接字 \'/tmp/mysql.sock\' 连接到本地 MySQL 服务器 (2)【英文标题】:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2) 【发布时间】:2011-12-12 05:23:56 【问题描述】:我正在尝试在我的终端上运行 mysql 客户端。我已经安装了最新的 mysql gem。
➜ ~ git:(master) ✗ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
➜ ~ git:(master) ✗ rails -v
Rails 2.3.14
➜ ~ git:(master) ✗ which mysql
mysql: aliased to nocorrect mysql
➜ ~ git:(master) ✗ which ruby
/usr/bin/ruby
➜ ~ git:(master) ✗ which rails
/usr/bin/rails
➜ ~ git:(master) ✗ gem list
*** LOCAL GEMS ***
actionmailer (2.3.14)
actionpack (2.3.14)
activerecord (2.3.14)
activeresource (2.3.14)
activesupport (2.3.14)
builder (2.1.2)
bundler (1.0.21)
capistrano (2.9.0)
capybara (0.3.9)
cgi_multipart_eof_fix (2.5.0)
childprocess (0.2.2)
columnize (0.3.4, 0.3.3)
cucumber (0.9.4)
cucumber-rails (0.3.2)
culerity (0.2.15)
daemons (1.1.4)
database_cleaner (0.6.7)
diff-lcs (1.1.3)
expertiza-authlogic (2.1.6.1)
fastercsv (1.5.4)
fastthread (1.0.7)
ffi (1.0.10, 1.0.9)
gdata (1.1.2)
gem_plugin (0.2.3)
gherkin (2.2.9)
highline (1.6.2)
hoptoad_notifier (2.4.11)
json (1.4.6)
json_pure (1.6.1)
linecache (0.46)
mime-types (1.16)
mongrel (1.1.5)
mysql (2.8.1)
mysql2 (0.3.7)
net-scp (1.0.4)
net-sftp (2.0.5)
net-ssh (2.2.1)
net-ssh-gateway (1.1.0)
nokogiri (1.5.0)
rack (1.1.2)
rack-test (0.6.1)
rails (2.3.14)
rake (0.9.2)
rbx-require-relative (0.0.5)
rdoc (3.11)
RedCloth (4.2.8)
rgl (0.4.0)
ruby-debug (0.10.4)
ruby-debug-base (0.10.4)
rubyzip (0.9.4)
selenium-webdriver (2.8.0, 2.7.0)
stream (0.5)
term-ansicolor (1.0.7, 1.0.6)
➜ expertiza git:(master) ✗ sudo su
Password:
sh-3.2# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sh-3.2#
我无法摆脱上述错误。我在/Users/HPV/expertiza/tmp/sockets
中创建了一个mysql.sock file
。在我写的文件中mysql.default_socket =/expertiza/tmp/sockets/mysql.sock
。
我做错了什么?
谢谢!
【问题讨论】:
它不应该是一个文件,它应该是一个套接字。 最初在/Users/HPV/expertiza/tmp/sockets
中有一个空的套接字文件夹。我该怎么办?
别管它,这样它就可以在那里创建套接字。
好的删除了mysql.sock。错误仍然存在。
你重启mysqld了吗?它创建了一个套接字吗?
【参考方案1】:
您需要follow the directions 来安装和启动服务器。
该命令因您安装 MySQL 的方式而异。先试试这个:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM 启动
如果失败:
cd /usr/local/mysql sudo ./bin/mysqld_safe (如有必要,请输入您的密码) (按 Control-Z) bg
【讨论】:
启动mysql的命令是mysqld,代表“mysql daemon”。如果您的 mysql 从未运行,只需在终端中键入该命令即可。 :)【参考方案2】:另外,如果您遇到此错误并通过 Homebrew 安装了 mysql,我发现这是可行的(尽管您需要将“5.6.12”更改为您自己的版本):
/usr/local/Cellar/mysql/5.6.12/bin/mysql.server重启
我刚刚在我的主目录中创建了一个文件 ~/restartMysql.sh(其中只有上面的行),这样我就可以在 MySQL 运行时使用它
【讨论】:
这个。这么多。哥们,我爱你。【参考方案3】:在命令行运行以下命令:
$ mysql.server start
【讨论】:
出现如下错误:/usr/local/Cellar/mysql@5.7/5.7.23/bin/mysqld_safe: line 144: /usr/local/var/mysql/Victors-MacBook-Air-2.local.err: Permission denied
【参考方案4】:
post 帮我完成了这件事,我将在这里重写步骤(注意:我还将编写你的命令的输出......只是为了让你知道你在轨道上)
如果正在运行,首先停止服务器:
[root@servert1 ~]# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
在单独的线程上运行 sql 守护进程
[root@servert1 ~]# mysqld_safe --skip-grant-tables &
[1] 13694
[root@servert1 ~]# Starting mysqld daemon with databases from /var/lib/mysql
打开一个单独的 shell 窗口并输入
[root@servert1 ~]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
开始使用mysql
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
使用您的新密码手动更新user
表(注意:请随意输入mysql> show tables;
以了解您所在的位置)
注意:从 MySQL 5.7 开始,密码在 authenication_string
表中,因此命令为 update user set authentication_string=password('testpass') where user='root';
mysql> update user set password=PASSWORD("testpass") where User='root';
Query OK, 3 rows affected (0.05 sec)
Rows matched: 3 Changed: 3 Warnings: 0
刷新权限(我不确定这个权限是什么……但它有效)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
退出
mysql> quit
Bye
停止服务器
注意:在 OS X 或 macOS 上,mysql.server
位于 /usr/local/mysql/support-files/
。
mysql.server stop
Shutting down MySQL
.130421 09:27:02 mysqld_safe mysqld from pid file /usr/local/var/mysql/mycomputername.local.pid ended
SUCCESS!
[2]- Done mysqld_safe --skip-grant-tables
杀死运行 dameon 的另一个 shell 窗口(只是为了确保)
现在你可以走了!试试看:
[root@servert1 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.10 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
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>
完成!
【讨论】:
我仍然收到 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 在用户表修改root密码阶段:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
- MySQL 5.7的密码在authenication_string中,所以命令为update user set authentication_string=password('your_root_pw_here') where user='root';
【参考方案5】:
我希望这对某人有所帮助。我遇到了同样的错误,但原因似乎与其他人大不相同。
我有 2 台 CentOS 机器。
我将 my.cnf 复制到新机器上,没有意识到我已经将旧机器升级到 MySQL 5.6,而新机器安装了 5.5。当我注释掉 5.6-only 指令时,MySQL 按预期启动。 (现在我正在运行升级,所以我可以应用非常有用的 innodb_buffer_pool_dump_at_shutdown
和 innodb_buffer_pool_load_at_startup
指令)
我建议尝试最低限度的 my.cnf。如果 MySQL 启动了,那么您已经找到了问题的根源。
【讨论】:
【参考方案6】:看起来你需要安装一个 MySQL 服务器,在 mysql 的站点上有安装包,或者你可以通过 macports 安装(我假设来自 darwin11 行)。 我通过端口安装了我的,套接字位于 /opt/local/var/run/mysql5/ 中。
【讨论】:
【参考方案7】:就我而言,我没有正确设置 tmp 文件夹。我最终完成了这些步骤:
1. cd /
2. ln -s private/tmp /tmp
【讨论】:
以上是关于无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)的主要内容,如果未能解决你的问题,请参考以下文章
错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器
错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器
无法通过 FreeBSD 上的套接字 '/tmp/mysql.sock' (38)' 连接到本地 MySQL 服务器
警告:mysql_connect(): 无法通过套接字'/tmp/mysql.sock' (2) 连接到本地 MySQL 服务器
Mac 终端/ MySQL 配置问题 | ERROR 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)
FLASK python web:MySQLdb._exceptions.OperationalError:(2002,“无法通过套接字'/tmp/mysql.sock'连接到本(代码