J'essaye de me connecter à mysql sur mon terminal (MAC), alors je tape la commande mysql -h localhost -u root -p root et ensuite ça me demande mon mot de passe de ma session. Quand je clique sur "entrer", ça me met ce message d'erreur : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2). J'en conclus que mysql.sock.sock n'existe pas. Je ne sais pas du out pourquoi ça me fait ça (je suis sous MAMP PRO). Dans mon navigateur, quand j'écris l'url file:///tmp/mysql.sock , Chrome me dit que cette page web est introuvable.
Comment faire ? SI quelqu'un a connu le même problème que moi, ou sait comment résoudre ce problème, merci de faire signe.
ok donc netstat sous mac et netstat sous linux ça n'a rien à voir. Ce que tu vois là, c'est un message expliquant comment utiliser netstat. Pas comme je te l'ai demandé apparemment. Essaye juste : sudo netstat -l. Qu'obtiens tu?
C'est pour savoir si tu utilises bien une socket unix, et pas une socket tcp.
- Edité par Zer0 Abs0lu 27 mai 2013 à 0:03:26
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
Ok. Comme tu peux le constater. mysql.sock existe bien et tu utilises donc bien une socket unix. Simplement, il n'est pas à l'emplacement utilisé par la commande mysql dont tu nous as parlé au début. Tape man mysql. Tu devrais voir apparaître la documentation du client mysql. Lis le. Y a-t-il une option qui te permette d'utiliser un autre emplacement? Si ce n'est pas le cas, essaye de configurer le serveur pour utiliser /tmp/mysql.sock comme emplacement.
EDIT: Utilise une balise citation la prochaine fois stp.
- Edité par Zer0 Abs0lu 27 mai 2013 à 22:17:23
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
Merci, je vais essayer de faire ce que tu m'as dit de faire (et dsl pour la balise de citation, je n'y ai pas pensé)
Bon, je n'y arrive vraiment pas. Je suis allé voir dans php.ini, et il y a cette ligne : mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock et je l'ai changée en mysql.default_socket = /Applications/MAMP/tmp/mysql.sock puis j'ai redémarré mon serveur MySQL, retapé la commande dans le terminal et ça m'a remis la même erreur. Et pour la documentation, je n'ai rien vu qui nous aide...
MYSQL(1) MySQL Database System MYSQL(1)
NAME
mysql - the MySQL command-line tool
SYNOPSIS
mysql [options] db_name
DESCRIPTION
mysql is a simple SQL shell with input line editing capabilities. It supports interactive and noninteractive use. When used interactively, query results are presented in an ASCII-table format. When used noninteractively (for example, as
a filter), the result is presented in tab-separated format. The output format can be changed using command options.
If you have problems due to insufficient memory for large result sets, use the --quick option. This forces mysql to retrieve results from the server a row at a time rather than retrieving the entire result set and buffering it in memory
before displaying it. This is done by returning the result set using the mysql_use_result() C API function in the client/server library rather than mysql_store_result().
Using mysql is very easy. Invoke it from the prompt of your command interpreter as follows:
shell> mysql db_name
Or:
shell> mysql --user=user_name --password=your_password db_name
Then type an SQL statement, end it with ";", \g, or \G and press Enter.
Typing Control+C causes mysql to attempt to kill the current statement. If this cannot be done, or Control+C is typed again before the statement is killed, mysql exits. Previously, Control+C caused mysql to exit in all cases.
You can execute SQL statements in a script file (batch file) like this:
shell> mysql db_name < script.sql > output.tab
On Unix, the mysql client writes a record of executed statements to a history file. See the section called "MYSQL HISTORY FILE".
MYSQL OPTIONS
mysql supports the following options, which can be specified on the command line or in the [mysql] and [client] groups of an option file. mysql also supports the options for processing option files described at Section 4.2.3.3.1,
"Command-Line Options that Affect Option-File Handling".
o --help, -?
Display a help message and exit.
o --auto-rehash
Enable automatic rehashing. This option is on by default, which enables database, table, and column name completion. Use --disable-auto-rehash to disable rehashing. That causes mysql to start faster, but you must issue the rehash
command if you want to use name completion.
To complete a name, enter the first part and press Tab. If the name is unambiguous, mysql completes it. Otherwise, you can press Tab again to see the possible names that begin with what you have typed so far. Completion does not
occur if there is no default database.
o --auto-vertical-output
Cause result sets to be displayed vertically if they are too wide for the current window, and using normal tabular format otherwise. (This applies to statements terminated by ; or \G.) This option was added in MySQL 5.5.3.
o --batch, -B
Print results using tab as the column separator, with each row on a new line. With this option, mysql does not use the history file.
Batch mode results in nontabular output format and escaping of special characters. Escaping may be disabled by using raw mode; see the description for the --raw option.
o --bind-address=ip_address
On a computer having multiple network interfaces, this option can be used to select which interface is employed when connecting to the MySQL server.
This option is supported only in the version of the mysql client that is supplied with MySQL Cluster. It is not available in standard MySQL Server 5.5 releases.
o --character-sets-dir=path
The directory where character sets are installed. See Section 10.5, "Character Set Configuration".
o --column-names
Write column names in results.
Alors premièrement, le php.ini, pour quoi faire? Je rappelle que le problème n'a aucun rapport avec php, qui n'est pas du tout utilisé dans la chaîne. Tu as mal lu la documentation, et tu poste une version tronquée. Et tu n'est pas obligé de tout lire, tu peux aussi chercher!
Une fois que tu as tapé man mysql, le manuel s'affiche dans un pager. Ce pager devrait te permettre de faire une recherche. Pour chercher "socket", tape juste /socket (/ signifie rechercher, comme dans vi). Tu devrais tomber sur une option qui me semble être une solution à ton problème.
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
@elalitte: une liste d'interfaces réseau, non? Mais vu qu'une socket unix est apparemment utilisée, on dit explicitement qu'on n'utilise pas le réseau, alors pourquoi cette question?
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
Parce que j'ai vu maintes fois cette erreur lorsque l'interface locale n'était pas montée et que la mise en place du socket nécessitait de pouvoir mapper l'interface réseau sur l'interface locale, même si le service n'était censé tourner que sur l'interface réseau.
For connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use.
Mais je ne vois pas trop où et quand il faut que je rentre cette commande. J'ai essayé de la rentrer de partout ("accueil" du terminal, interface de la doc mysql sur le terminal...) et ça ne fait rien.
Exactement! Bien trouvé (enfin je pense, j'ai pas vérifié).
Là ce que tu lis, c'est la doc de mysql. Pas de mysql, le SGBDR, mais de mysql, la commande qui est en fait un client pour le SGBDR, au même titre que mysqlquery ou phpmyadmin.
Quand tu tapes mysql -h localhost -u root -p root , -h est une option, -u aussi, et -p aussi. -S, la version courte de l'option que tu as trouvée s'utilise de la même manière, tu n'as qu'à la rajouter à la fin. Si tu veux utiliser la version longue, c'est --socket=/chemin/vers/ta/socket.sock qu'il faut rajouter. Tu devrais aussi ceci si tu veux progresser dans ce domaine.
- Edité par Zer0 Abs0lu 28 mai 2013 à 18:19:42
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
Bon, je bloque. J'ai fouillé tous les dossiers de MAMP, et je ne trouve pas ce mysql.sock. Comment savoir ou se trouve ce fichier mysql.sock ? Quelqu'un sait ?
Ça ne marche toujours pas mais il y a du progrès. Maintenant, quand j'écris la commande mysql -h localhost -u root -p root --socket=/Applications/MAMP/tmp/mysql/mysql.sock ça me met ce message d'erreur : ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Comment ça se fait ? Pourtant c'est bien ça mes identifiants !
Énorme progrès: tu es en train de parler à ton serveur qui te dit: que tu ne peux pas te connecter en root sur localhost avec ce mot de passe. Comment sais-tu que ce sont bien tes identifiants?
Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.