web-dev-qa-db-fra.com

Impossible de se connecter au serveur MySQL local via le socket '/tmp/mysql.sock' (2)

J'essaye de lancer le client mysql sur mon terminal. J'ai installé la dernière gem 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# 

Je ne suis pas capable de me débarrasser de l'erreur ci-dessus. J'ai créé un mysql.sock file dans /Users/HPV/expertiza/tmp/sockets. Dans le fichier, j'ai écrit mysql.default_socket =/expertiza/tmp/sockets/mysql.sock

Qu'est-ce que je fais mal?

Merci!

31
Ava

Vous devez suivez les instructions pour installer et démarrer le serveur. 

La commande varie en fonction de la manière dont vous avez installé MySQL. Essayez ceci en premier:

Sudo/Bibliothèque/StartupItems/MySQLCOM/MySQLCOM start

Si cela échoue:

cd/usr/local/mysql
Sudo ./bin/mysqld_safe
(Entrez votre mot de passe, si nécessaire)
(Appuyez sur Control-Z)
bg

37
David Schwartz

De plus, si vous rencontrez cette erreur et installez mysql via Homebrew, je constate que cela fonctionne (bien que vous deviez remplacer "5.6.12" par votre propre version):

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

Je viens de créer un fichier ~/restartMysql.sh dans mon répertoire personnel (avec uniquement la ligne ci-dessus) afin que je puisse simplement l'utiliser lorsque le comportement de MySQL est dépassé. 

32
smckee

Exécutez ce qui suit sur la ligne de commande: 

$ mysql.server start
17
hsuk

this post m’a aidé à le faire pour moi, je vais récrire les étapes ici (note: j’écrirai également le résultat de vos commandes .. juste pour que vous sachiez que vous êtes sur la bonne voie)

arrêtez d'abord le serveur s'il est en cours d'exécution:

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

exécuter un dameon SQL sur un thread séparé

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

ouvre une fenêtre Shell séparée et tapez

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

commence à utiliser 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

mettez à jour manuellement la table user avec votre nouveau mot de passe (remarque: n'hésitez pas à taper mysql> show tables; uniquement pour avoir une idée de l'endroit où vous vous trouvez)}

NOTE: depuis MySQL 5.7, les mots de passe sont dans la table authenication_string, la commande est donc 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

privilèges de vidage (je ne suis pas sûr de ce que sont ces privilèges .. mais ça marche)}

mysql> flush privileges; 

Query OK, 0 rows affected (0.04 sec)

quitter

mysql> quit

Bye

_ {arrête le serveur} _

REMARQUE: sous OS X ou macOS, mysql.server est situé à /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

tue l'autre fenêtre du shell dans laquelle le dameon est en cours d'exécution (juste pour en être sûr))

_ {maintenant vous êtes prêt à partir! essayez-le :)

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

terminé!

4
abbood

J'espère que cela aide quelqu'un. J'avais la même erreur, mais apparemment pour une raison bien différente de celle des autres.

J'ai 2 machines CentOS.

J'ai copié my.cnf sur la nouvelle machine, ne réalisant pas que j'avais mis à niveau l'ancienne machine vers MySQL 5.6 et que la nouvelle machine avait une version 5.5 installée. Lorsque j'ai commenté les directives 5.6 uniquement, MySQL a démarré comme prévu. (Et maintenant, je lance la mise à jour pour pouvoir appliquer les directives massivement utiles innodb_buffer_pool_dump_at_shutdown et innodb_buffer_pool_load_at_startup)

Je suggère d'essayer un minimum minimum my.cnf. Si MySQL démarre, alors vous avez trouvé la source de votre problème.

1
Buttle Butkus

Dans mon cas, le dossier tmp ne fonctionne pas correctement. Qu'est-ce que je me retrouve avec ces étapes:

1. cd /

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

Il semble que vous ayez besoin d’un serveur MySQL installé, que des paquets d’installation soient installés sur le site de mysql, ou que vous puissiez l’installer via macports (je suppose de la ligne darwin11) . local/var/run/mysql5 /.

0
Tim