我只是不得不重新安装mysql,并且遇到启动问题。它找不到套接字(mysql.sock)。问题是,我也没有。在我的Mac OS X 10.4终端中,我输入:locate mysql.sock
,然后我回到/private/tmp/mysql.sock
。它是有意义的,该套接字文件存在于该位置,但实际上并没有。找不到mysql.sock
如何找到套接字文件?
如果locate返回一个错误的位置,它必须具有某种内存和可能的索引。我该如何刷新该索引?
我只是不得不重新安装mysql,并且遇到启动问题。它找不到套接字(mysql.sock)。问题是,我也没有。在我的Mac OS X 10.4终端中,我输入:locate mysql.sock
,然后我回到/private/tmp/mysql.sock
。它是有意义的,该套接字文件存在于该位置,但实际上并没有。找不到mysql.sock
如何找到套接字文件?
如果locate返回一个错误的位置,它必须具有某种内存和可能的索引。我该如何刷新该索引?
回答你的问题的第一部分:
运行
% mysqladmin variables
并选中 '插座' 变量
我无法与问题#1帮助,但刷新locate
的文件数据库,运行:
updatedb
的套接字文件应MySQL守护程序启动时自动创建。
如果找不到,很可能应该包含它的目录不存在,或者其他一些文件系统问题阻止创建套接字。
找出该文件应该是,使用:
% mysqld --verbose --help | grep ^socket
刷新定位的数据库我跑
/usr/libexec/locate.updatedb
我的问题也是mysql.sock文件。
在Drupal的安装过程中,我不得不说,我想用 的数据库,但我的数据库找到
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
系统搜索的mysql.sock,但它是在错误的目录
所有你所要做的就是将它连结;)
我花了很多时间来谷歌所有重要的信息,但我花了甚至几小时找出如何去适应,但现在我可以呈现的结果: D
PS:如果你想成为正是你必须连结/tmp/mysql.sock-file
(如果它位于你的系统有太多)由php.ini中(或php.default.ini)给出的目录中pdo_mysql.default_socket= ...
这解决了我的问题
mysql_config --socket
UPDATE
mysql_config能告诉我们该文件的MySQL。袜子应该是,但在我的情况下,该文件不存在。所以,我已经删除的my.cnf:
sudo rm -rf /etc/my.cnf
然后重新启动MySQL的:创建
brew services restart mysql
文件和MySQL目前运行良好。
$ mysqladmin variables | grep sock
试试这个,而是输出所需的结果,摆脱无关的信息。
原来的问题似乎来自于对a)文件在哪里和b)在哪里寻找(以及为什么我们不能在找到或grep时找到它)的混淆。我认为Alnitak的观点是你想找到它的链接地址 - 但grep不会显示你的链接,对吧?该文件不在那里,因为它是一个链接,它只是一个指针。你仍然需要知道把链接放在哪里。
我的袜子文件肯定是在/ tmp中,我得到的错误是在/ var/lib /中寻找它(不仅仅是/ var)我已经链接到/ var和/ var/lib现在,我仍然出现错误“无法通过套接字'var/lib/mysql.sock'(2)”连接到本地MySQL服务器。
注意(2)错误后......我在另一个线程上发现这意味着套接字可能确实试图被使用,但是套接字本身有问题 - 所以要关闭机器 - 完全 - 以便套接字关闭。然后重新启动应该修复它。我试过了,但它对我没有用(现在我质疑我是否很快重启?真的吗?)也许这是对其他人的解决方案。
这个发现对我来说:
netstat -ln | grep mysql
的Mac OSX
我使用的确切路径:
netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'
因为这只会返回路径,并且不需要任何输入你可以在shell脚本中使用它。
MySQL必须正在您的机器上运行才能正常工作。也适用于MariaDB。
(Q1)如何找到套接字文件?
套接字文件的默认位置是/tmp/mysql.sock,为您的系统找到套接字文件使用它。
mysqladmin variables | grep socket
如果您刚刚安装了MySql,则在启动服务器之前不会创建mysql.sock文件。使用此命令启动它。
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
如果提示输入密码,您可以传递用户名root或其他用户名。终端会提示你输入密码。
mysqladmin --user root --password variables | grep socket
(Q2)我怎样才能刷新查找指数
刷新使用此命令查找分贝。
sudo /usr/libexec/locate.updatedb
我得到了同样的错误在Mac OS X 10.11.6:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
很多的折腾后,通过咨询在这里挖掘和相关的问题,其中没有一个似乎为了解决这个问题,我回去删除了已安装的文件夹,并做了brew install mysql
。
仍然得到大多数命令相同的错误,但这个工程:
/usr/local/bin/mysqld
和回报:
/usr/local/bin/mysqld: ready for connections.
Version: '5.7.12' socket: '/tmp/mysql.sock' port: 3306 Homebrew
我找不到mysql的插座都那么重新安装MySQL服务器(所有表和phpmyadmin设置保留)。下面是命令:
1)安装
sudo apt-get install mysql-server
2)按照终端配置步骤
sudo mysql_secure_installation
3)检查状态:(应该返回 “活性:活性(运行)”)
systemctl status mysql.service
不起作用 – Tony 2009-04-14 17:27:43
那么为什么这是公认的答案? – 2010-12-21 19:46:29