Не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2) - PullRequest
32 голосов
/ 21 октября 2011

Я пытаюсь запустить клиент 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.

Что я делаю не так?

Спасибо!

Ответы [ 7 ]

37 голосов
/ 21 октября 2011

Вам необходимо следовать указаниям , чтобы установить и запустить сервер.

Команда зависит от того, как вы установили MySQL.Попробуйте сначала:

sudo / Библиотека / StartupItems / MySQLCOM / MySQLCOM start

Если это не удается:

cd / usr / local/ mysql
sudo ./bin/mysqld_safe
(при необходимости введите свой пароль)
(нажмите Control-Z)
bg

32 голосов
/ 04 февраля 2014

Также, если вы получили эту ошибку и установили mysql через Homebrew, я обнаружил, что это работает (хотя вам нужно изменить «5.6.12» на вашу собственную версию):

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

Я только что создал файл ~ / restartMysql.sh в моем домашнем каталоге (только с строкой выше), чтобы я мог использовать его всякий раз, когда MySQL работает

17 голосов
/ 17 ноября 2015

Выполните в командной строке следующее:

$ mysql.server start
5 голосов
/ 21 апреля 2013

this 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)

бросить курить

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> 

сделано!

1 голос
/ 08 июня 2015

Надеюсь, это кому-нибудь поможет.Я получал ту же ошибку, но, по-видимому, по совершенно другой причине, чем другие люди.

У меня есть 2 машины CentOS.

Я скопировал 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 запускается, значит, вы нашли источник вашей проблемы.

0 голосов
/ 27 июня 2017

В моем случае у меня неправильно настроена папка tmp. Что я в конечном итоге с этими шагами:

1. cd /

2. ln -s private/tmp /tmp
0 голосов
/ 21 октября 2011

Похоже, вам нужен установленный сервер MySQL, на сайте mysql есть пакеты для установки или вы можете установить их через macports (я полагаю, из строки darwin11).Я установил мой через порты, и сокет живет в /opt/local/var/run/mysql5/.

...