2008-08-15 8 views
17

Ich habe den interaktiven SQL-Modus von Emacs verwendet, um mit dem MySQL-Datenbankserver zu sprechen und ihn zu genießen. Ein Entwickler hat eine andere Datenbank auf einer neuen nicht-standardmäßigen Port-Nummer eingerichtet, aber ich weiß nicht, wie ich mit sql-mysql darauf zugreifen kann.Geben Sie eine Portnummer in Emacs an sql-mysql

Wie gebe ich eine Portnummer an, wenn ich versuche, eine Verbindung zu einer Datenbank herzustellen?

Es wäre noch besser, wenn Emacs mich nach einer Portnummer fragen und einfach den Standard verwenden könnte, wenn ich nicht spezifiziere. Irgendwelche Chancen dafür?

Antwort

10

Nach dem Durchsuchen der Datei sql.el habe ich eine Variable gefunden, mit der ich einen Port angeben kann, wenn ich versuche, eine Verbindung herzustellen.

Diese Option wurde hinzugefügt GNU Emacs 24.1.

sql-mysql-Login-params

Liste der Login-Parameter zu MySQL verbinden benötigt.

Ich habe diese auf meine Emacs init-Datei:

(setq sql-mysql-login-params (append sql-mysql-login-params '(port))) 

Der Standard-Port ist 0. Wenn Sie, dass auf den Standard MySQL-Port eingestellt möchten Sie sql-port

(setq sql-port 3306) ;; default MySQL port 
anpassen

Es gibt eine sql-*-login-params Variable für alle gängigen RDMS-Systeme in GNU Emacs 24.1. sql-port wird sowohl für MySQL als auch für PostreSQL verwendet

+1

Vielen Dank! Einige Anmerkungen: Um den Standard-Port zu spezifizieren, können Sie construct wie '(add-to-list 'sql-postgres-login-params' (Port: default 5432))' (beachten Sie das ': default' -Tag) verwenden. Und Sie sollten '(require 'sql)' vor 'add-to-list' hinzufügen, sonst erhalten Sie den Fehler" Der Wert des Symbols als Variable ist void: sql-mysql-login-params " – seriyPS

+0

@seriyPS danke! Beachten Sie, dass Sie es auch in ein '(mit-eval-after-load" sql "' ... einfügen können, das dann nur den Code ausführt, wenn das Paket 'sql' tatsächlich geladen ist –

8
(setq sql-mysql-options (list "-P <port number>")) 
5

fand ich die Option:

M-x customize-group 
SQL 

, dass eine Einstellung der Bezeichnung enthalten:

Mysql Options: 

Wenn Sie die Option und speichern, wird es eine neue Zeile hinzugefügt werden Ihre .emacs:

(custom-set-variables 
'(sql-mysql-options (quote ("-P ???")))) 

(Offensichtlich sollten Sie die tatsächliche Portnummer verwenden.)

Ich benutze XEmacs, damit Ihre Meilenzahl variieren kann.