GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la posizione corretta del file mysql.sock su Linux

La dichiarazione del socket dovrebbe trovarsi sotto [mysqld] nel tuo my.cnf . Se l'hai dichiarato lì e stai ancora puntando a un altro posto come tmp , quindi il tuo my.cnf il file che hai modificato non viene letto all'avvio di mysql o c'è un altro my.cnf sovrascrivendo quello che hai modificato. Il caso potrebbe anche essere che ci sia un secondo Socket dichiarazione nello stesso my.cnf file che sovrascrive quello che ti aspetti venga letto all'avvio da mysql.

Puoi controllare il suo percorso assoluto accedendo a mysql ed eseguendo:

mysql> show variables like 'socket';
+-----------------------------------------+-------------------------------+
| Variable_name                           | Value                         |
+-----------------------------------------+-------------------------------+
| socket                                  | /yourpath/mysql.sock          |
+-----------------------------------------+-------------------------------+
1 rows in set (0.00 sec)

Non esiste un posto giusto o sbagliato su Linux per salvare i socket, tranne che su dispositivi esterni che vengono smontati in qualsiasi momento o cartelle che vengono svuotate di tanto in tanto. Devi configurare dove vuoi posizionarlo.

Per il client della console MySQL c'è qualcosa in più da considerare:il client sembra utilizzare il valore di configurazione del socket fornito in [client] invece di [mysqld]. Se hai una configurazione di più server MySQL come ho (4.1, 5.5, 5.7), probabilmente vorrai usare un'opzione "--defaults-extra-file" con il socket scritto nella parte [client] per ogni server diverso. Il socket deve essere uguale a quello definito nella parte my.cnf [mysqld] utilizzata sul server. Ecco un esempio defaults-extra-file.cnf, ricorda di modificare l'utente, la password e il socket in base alle tue esigenze - e tienilo con i diritti di accesso 400 (dopotutto c'è una password memorizzata):

[client]
user = guardian
password = I-4m.Gr00t!
host = localhost
socket = /var/run/mysqld/mysqld-5.6.sock

Questo vale solo se stai usando "localhost" come valore per "host". Se hai più indirizzi locali (127.0.0.2, 127.0.0.3), devi lasciare la variabile di configurazione per "host" su "localhost" per usare il socket configurato. Altrimenti il ​​client si collegherà al server usando TCP.

Questo è stato testato sul mio server Debian 9.5 con MySQL 4.1.22, 5.5.49 e 5.7.19 e i rispettivi client.


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Che cos'è il numero di inode in Linux?

  3. Linux:quali sono i diversi modi per impostare i permessi dei file ecc. su Gnu/linux?

  4. Qual è lo scopo del file .bashrc in Linux

  5. Come scoprire la posizione del file di configurazione MySQL attualmente utilizzato in Linux

Introduzione al file system Linux

Cos'è umask in Linux?

Che cos'è la shell in Linux?

Che cos'è il file .bashrc in Linux?

Come trovo la posizione MySQL my.cnf

Qual è l'effetto dell'impostazione di un socket linux - alta priorità?