web-dev-qa-db-ja.com

ソケット「/tmp/mysql.sock」を介してローカルMySQLサーバーに接続できません(2)

私の端末で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# 

上記のエラーを取り除くことはできません。 mysql.sock file/Users/HPV/expertiza/tmp/socketsを作成しました。ファイルにmysql.default_socket =/expertiza/tmp/sockets/mysql.sockと書きました。

私は何を間違えていますか?

ありがとう!

32
Ava

サーバーをインストールして起動するには、 指示に従う が必要です。

コマンドは、MySQLのインストール方法によって異なります。最初にこれを試してください:

Sudo/Library/StartupItems/MySQLCOM/MySQLCOM start

それが失敗した場合:

cd/usr/local/mysql
Sudo ./bin/mysqld_safe
(必要に応じてパスワードを入力します)
(Control-Zを押します)
bg

37
David Schwartz

また、このエラーが発生し、Homebrew経由でmysqlをインストールした場合、これが機能することがわかりました(ただし、「5.6.12」を独自のバージョンに変更する必要があります)。

/usr/local/Cellar/mysql/5.6.12/bin/mysql.server restart

ホームディレクトリに〜/ restartMysql.shファイルを作成しました(上記の行のみ)ので、MySQLが動作しているときはいつでもこれを使用できます

32
smckee

コマンドラインで次を実行します。

$ mysql.server start
17
hsuk

これは post 助けてくれたので、ここで手順を書き直します(注:コマンドの出力も書きます。あなたが順調に進んでいることがわかるように)

最初に実行している場合はサーバーを停止します:

_[root@servert1 ~]# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
_

別のスレッドでSQL dameonを実行する

_[root@servert1 ~]# mysqld_safe --skip-grant-tables &    
[1] 13694    
[root@servert1 ~]# Starting mysqld daemon with databases from /var/lib/mysql
_

別のシェルウィンドウを開き、入力します

_[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)
_

quit

_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
_

ダメオンを実行している他のシェルウィンドウを殺す(念のため)

これで準備完了です!それを試してみてください:

_[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> 
_

完了!

5
abbood

これが誰かの助けになることを願っています。私は同じエラーを受け取っていましたが、どうやら他の人とはかなり異なる理由のためでした。

CentOSマシンを2台持っています。

My.cnfを新しいマシンにコピーしましたが、古いマシンをMySQL 5.6にアップグレードし、新しいマシンに5.5がインストールされたことに気づきませんでした。 5.6のみのディレクティブをコメントアウトすると、MySQLは期待どおりに起動しました。 (そして今、私は非常に便利なinnodb_buffer_pool_dump_at_shutdownおよびinnodb_buffer_pool_load_at_startupディレクティブ)

最小限のmy.cnfを試すことをお勧めします。 MySQLが起動したら、問題の原因が見つかりました。

1
Buttle Butkus

私の場合、tmpフォルダーが正しくセットアップされていません。私がこれらのステップで終わるもの:

1. cd /

2. ln -s private/tmp /tmp
0
Jingya Ying

MySQLサーバーをインストールする必要があるように見えます。mysqlのサイトにインストールパッケージがあるか、macportsを介してインストールできます(darwin11行から推測します)。ポート経由でインストールしましたが、ソケットは/ opt/local/var/run/mysql5 /にあります。

0
Tim