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

Rob*_*ert 6 mysql macos terminal google-app-engine localhost

我正在按照本教程在Google云上设置Wordpress网站:https: //googlecloudplatform.github.io/appengine-php-wordpress-starter-project/

  • 我正在使用OSX 10.10.3在Mac上工作.
  • 我已经为Google App Engine软件安装了PHP SDK.

现在我正在尝试在我的mac上安装MySQL服务器.我在这里下载了Mac OS X 10.9(x86,64位)压缩TAR存档:http://dev.mysql.com/downloads/mysql/

正如教程所说,我在终端中命令以下行:

/Users/myuser/Downloads/mysql-5.6.24-osx10.9-x86_64/bin/mysql/mysql -u root -p mypassword
Run Code Online (Sandbox Code Playgroud)

首先,终端要求输入密码,当我输入此密码时,会发生以下错误:

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

Pra*_*wal 21

看起来Mysql服务器还没有启动.

mysqld stop
mysql.server start
Run Code Online (Sandbox Code Playgroud)

有完全相同的问题,使用上面的命令来修复它.


Dio*_*nha 5

这是一个常见的错误,你可以像这样修复它

在此处输入图片说明

您可以使用以下命令序列删除 root 密码:

$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("") where User='root';
mysql> flush privileges;
mysql> quit
Run Code Online (Sandbox Code Playgroud)


des*_*e_j 5

错误: Mac terminal ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

如何在MAC + MAMP(pro)设置中解决此问题:

sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

这会创建从/tmp/mysql.sock到MAMP mysql.sock的符号链接

现在重新启动MAMP,然后该错误不应再发生。


7st*_*tud 5

OSX 10.13.2 High Sierra
mariadb 10.2.12

当我尝试使用时mariadb,我得到了完全相同的错误,我用自制软件安装.安装后我做的第一件事就是:

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through 
socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

为了排除故障,我做了:

~$ which mysql
/usr/local/mysql/bin/mysql
Run Code Online (Sandbox Code Playgroud)

然后我试了一下:

~$ mysql -u 7stud -p test
 Enter password:
 ERROR 2002 (HY000): Can't connect to local MySQL server 
 through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

和:

~$ mysql -u -p
ERROR 2002 (HY000): Can't connect to local MySQL server 
through socket '/tmp/mysql.sock' (2) 
Run Code Online (Sandbox Code Playgroud)

解决方案:

~$ mysql.server start
Starting MySQL
.180127 00:24:48 mysqld_safe Logging to '/usr/local/var/mysql/MyMBP.home.err'.
180127 00:24:48 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
 SUCCESS! 

~$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.5-10.2.12-MariaDB Homebrew

Copyright (c) 2000, 2015, 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>
Run Code Online (Sandbox Code Playgroud)

好的,我们走吧:

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql> CREATE DATABASE my_db;
Query OK, 1 row affected (0.00 sec)

mysql> use my_db;
Database changed

mysql> show tables;
Empty set (0.01 sec)

mysql> CREATE TABLE people (
    -> id INT(12) not null auto_increment primary key, 
    -> name VARCHAR(40), 
    -> info VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> describe people;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(12)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(40)  | YES  |     | NULL    |                |
| info  | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

mysql> INSERT INTO people(name, info) VALUES("Joe", "a b c") ;
Query OK, 1 row affected (0.01 sec)

mysql> select * from people;
+----+------+-------+
| id | name | info  |
+----+------+-------+
|  1 | Joe  | a b c |
+----+------+-------+
1 row in set (0.00 sec)

mysql> INSERT INTO people(name, info) VALUES("Beth", "1 2 3") ;
Query OK, 1 row affected (0.00 sec)

mysql> select * from people;
+----+-------+-------+
| id | name  | info  |
+----+-------+-------+
|  1 | Joe   | a b c |
|  2 | Beth  | 1 2 3 |
+----+-------+-------+
2 rows in set (0.00 sec)

mysql> quit
Bye

~$ mysql.server stop
Shutting down MySQL
. SUCCESS! 
~$ 
Run Code Online (Sandbox Code Playgroud)

我发现手动启动和停止mariadb的最佳指令在自动启动和停止MariaDB时是矛盾的:

您可以选择以几种不同的方式启动mysqld服务器:

  1. 运行或调用mysqld本身.执行此操作的示例在源目录中运行MariaDB中有更多描述.

  2. 使用mysqld_safe启动脚本

  3. 使用mysql.server启动脚本

mysql.server脚本首先更改为MariaDB安装目录然后调用mysqld_safe来启动mysqld.将适当的用户行添加到my.cnf文件中的[mysqld]组将导致服务器以该用户身份运行.

如果已将MariaDB安装到非标准位置,则可能需要编辑mysql.server脚本以使其正常工作.

mysql.server用作标准的SysV样式的init脚本.因此,您可以使用带有start和stop参数的脚本,如下所示:

mysql.server start
mysql.server stop
Run Code Online (Sandbox Code Playgroud)


Mic*_*rry 5

在做任何激烈的事情之前,请尝试使用回送地址127.0.0.1而不是默认的localhost.

mysql -h 127.0.0.1 -u root -p
Run Code Online (Sandbox Code Playgroud)

localhost如果您不指定-h,默认情况下将使用name ,它通过命名管道而不是 TCP/IP 连接。这是您在未启用命名管道时看到的错误消息。