2008-08-15 13 views
17

Używam trybu interakcyjnego sql Emacs, aby porozmawiać z serwerem db MySQL i uzyskać go cieszyć. Deweloper skonfigurował inną bazę danych na nowym, innym niż domyślny numerze portu, ale nie wiem, jak uzyskać do niego dostęp, używając sql-mysql.Określ numer portu w Emacs sql-mysql

Jak określić numer portu, gdy próbuję połączyć się z bazą danych?

Byłoby jeszcze lepiej, gdyby Emacs mógł zapytać mnie o numer portu i po prostu użyć domyślnego, jeśli nie określiłem. Jakieś szanse na to?

Odpowiedz

10

Po wykopaniu pliku sql.el znalazłem zmienną, która pozwala mi określić port, gdy próbuję utworzyć połączenie.

Ta opcja została dodana GNU Emacs 24.1.

sql-mysql-login-params

Lista parametrów logowania potrzebnych do połączenia z MySQL.

Dodałem to do mojego pliku inicjującego Emacs:

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

Domyślnym portem jest 0. Jeśli chcesz ustawić, że do standardowego portu MySQL można dostosować sql-port

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

Istnieje zmienna sql-*-login-params dla wszystkich popularnych systemów RDMS w GNU Emacs 24.1. sql-port jest używany zarówno dla MySQL, jak i PostreSQL

+1

Dzięki! Niektóre uwagi: aby określić domyślny port, możesz użyć konstrukcji, jak '(add-to-list 'sql-postgres-login-params' (port: default 5432))' (zwróć uwagę na znacznik ': default'). Powinieneś dodać '(require 'sql)' before 'add-to-list', inaczej otrzymasz błąd" Wartość symbolu jako zmienna jest nieważna: sql-mysql-login-params " – seriyPS

+0

@seriyPS thanks! pamiętaj, że możesz go również zawinąć w '' (with-eval-after-load "sql" '..., który będzie wtedy wykonywał kod tylko wtedy, gdy pakiet' sql' jest faktycznie załadowany –

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

znalazłem opcję przy użyciu:

M-x customize-group 
SQL 

To włączone ustawienie etykietą:

Mysql Options: 

Jeśli ustawisz opcję i zapisać go, nie będzie nowa linia dodaną Twoje .emacs:

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

(Oczywiście powinieneś użyć rzeczywistego numeru portu).

Używam XEmacs, więc Twój przebieg może się różnić.

Powiązane problemy