Specificare un numero di porta in Emacs sql-mysql
Domanda
Ho utilizzato la modalità interattiva sql di Emacs per parlare con il server database MySQL e mi sono divertito.Uno sviluppatore ha configurato un altro database su un nuovo numero di porta non predefinito ma non so come accedervi utilizzando sql-mysql.
Come posso specificare un numero di porta quando provo a connettermi a un database?
Sarebbe ancora meglio se Emacs potesse chiedermi un numero di porta e usare semplicemente quello predefinito se non lo specifico.Ci sono possibilità?
Soluzione
Dopo aver analizzato il file sql.el, ho trovato una variabile che mi consente di specificare una porta quando provo a creare una connessione.
Questa opzione è stata aggiunta GNU Emacs 24.1.
sql-mysql-login-params
Elenco dei parametri di accesso necessari per connettersi a MySQL.
Ho aggiunto questo al mio file init di Emacs:
(setq sql-mysql-login-params (append sql-mysql-login-params '(port)))
La porta predefinita è 0.Se desideri impostarlo sulla porta MySQL predefinita, puoi personalizzarlo sql-port
(setq sql-port 3306) ;; default MySQL port
C'è un sql-*-login-params
variabile per tutti i popolari sistemi RDMS in GNU Emacs 24.1. sql-port
viene utilizzato sia per MySQL che per PostreSQL
Altri suggerimenti
(setq sql-mysql-options (list "-P <port number>"))
Ho trovato l'opzione utilizzando:
M-x customize-group
SQL
Ciò includeva un'impostazione etichettata:
Mysql Options:
Se imposti l'opzione e la salvi, verrà aggiunta una nuova riga al tuo .emacs:
(custom-set-variables
'(sql-mysql-options (quote ("-P ???"))))
(Ovviamente, dovresti utilizzare il numero di porta effettivo.)
Io uso XEmacs, quindi il tuo chilometraggio può variare.