web-dev-qa-db-ja.com

Macターミナルエラー2002(HY000):ソケット '/tmp/mysql.sock'を介してローカルMySQLサーバーに接続できません(2)

このチュートリアルに従って、Wordpress Webサイトをセットアップします: https://googlecloudplatform.github.io/appengine-php-wordpress-starter-project/

  • OSX 10.10.3を搭載したMacで作業しています。
  • PHP SDK for Google App Engineソフトウェアをインストールしました。

今、私の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

最初に端末がパスワードを要求し、これを入力すると次のエラーが発生します。

ERROR 2002(HY000):Ca n't connect to local MySQL server through socket '/tmp/mysql.sock'(2)

12
Robbert

これは一般的なエラーです。このように修正できます

enter image description here

次のコマンドシーケンスでrootパスワードを削除できます。

$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("") where User='root';
mysql> flush privileges;
mysql> quit
4
Diogo Cunha

Mysqlサーバーが起動していないようです。

mysqld stop
mysql.server start

まったく同じ問題があり、上記のコマンドを使用して修正しました。

23
Prakhar Agarwal

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)

トラブルシューティングを行うために、次のことを行いました。

~$ which mysql
/usr/local/mysql/bin/mysql

そして私は試しました:

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

そして:

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

ソリューション

~$ 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>

では行きましょう:

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! 
~$ 

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スクリプトとして機能します。そのため、次のように開始引数と停止引数を指定してスクリプトを使用します。

mysql.server start
mysql.server stop
6
7stud

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

MAC + MAMP(プロ)セットアップでこれをどのように解決したか:

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

/tmp/mysql.sockからMAMP mysql.sockへのシンボリックリンクを作成します。

ここでMAMPを再起動すると、エラーは再び発生しなくなります。

5
desloovere_j

何かを行う前に、デフォルトのlocalhostではなく、ループバックアドレス127.0.0.1を使用して接続してみてください。

mysql -h 127.0.0.1 -u root -p

名前localhostは、-hを指定しない場合にデフォルトで使用され、TCP/IPではなく名前付きパイプを介して接続します。これは、名前付きパイプが有効になっていない場合に表示されるエラーメッセージです。

3
Michael L Perry

Mybrewを使用してMysqlをインストールした場合は、以下のコマンドを実行するだけで役に立ちます。

醸造サービスはmysqlを開始します

2
Long Nguyen

これは私にとっては仕事です、ファイルを削除するだけです$ rm /tmp/mysql.sock、次に$ brew services mariadb restart

1
Agus Sudarmanto

Mysqlのバージョンを切り替えてみてください。

以下は、MacでHomeBrewを使用するための手順です。

最初にmysqlのすべてのバージョンをリストします。

$ brew list --versions mysql 

古いバージョンに切り替えます。

$ brew services stop mysql
$ brew switch mysql 5.7.20
$ brew services start mysql
1

はい、それは私にとってもうまくいきます...しかし、私は理解していません:php.iniファイルの両方でconf(ApacheとMAMPのphp)ソケットのパスは良いです:socket=/Applications/MAMP/tmp/mysql/mysql.sockそれでは、なぜ/tmp/mysql.sock ???

「エクレア・マ・ランタン」ができる皆さん、ありがとうございました!

0
nina