Подтвердить что ты не робот

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

Я пытаюсь запустить клиент mysql на моем терминале. Я установил последний камень mysql.

 ➜  ~ 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.

Что я делаю неправильно?

Спасибо!

4b9b3361

Ответ 1

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

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

sudo/Library/StartupItems/MySQLCOM/MySQLCOM start

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

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

Ответ 2

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

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

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

Ответ 3

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

$ mysql.server start

Ответ 4

этот post помог мне это сделать, я переписал шаги здесь (примечание: я также буду писать вывод ваши команды.. просто чтобы вы знали, что находитесь в пути)

сначала остановите сервер, если он запущен:

[[email protected] ~]# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]

запустите sql dameon в отдельном потоке

[[email protected] ~]# mysqld_safe --skip-grant-tables &    
[1] 13694    
[[email protected] ~]# Starting mysqld daemon with databases from /var/lib/mysql

откройте отдельное окно оболочки и введите

[[email protected] ~]# 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

flush privileges (я не уверен, что это за права, но это работает)

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

убейте другое окно оболочки, в котором работает dameon (просто убедитесь)

теперь ты хочешь пойти! попробуйте:

[[email protected] ~]#  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

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

У меня есть 2 компьютера CentOS.

Я скопировал my.cnf на новую машину, не понимая, что я обновил старую машину до MySQL 5.6, и на новом компьютере было установлено 5.5. Когда я прокомментировал директивы только 5.6, MySQL начал, как ожидалось. (и теперь я запускаю обновление, поэтому я могу применить массово полезные директивы innodb_buffer_pool_dump_at_shutdown и innodb_buffer_pool_load_at_startup)

Я бы предложил попробовать минимум min.cnf. Если MySQL запускается, то вы нашли источник своей проблемы.

Ответ 6

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

Ответ 7

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

1. cd /

2. ln -s private/tmp /tmp