2008-08-15 57 views
17

我一直在使用Emacs的sql交互模式與MySQL數據庫服務器交談,並且很開心。開發者已經在一個新的非默認端口號上設置了另一個數據庫,但我不知道如何使用sql-mysql訪問它。在Emacs中指定一個端口號sql-mysql

當我嘗試連接到數據庫時,如何指定端口號?

如果Emacs能夠提示我輸入端口號,並且只使用缺省值(如果沒有指定),情況會更好。那有什麼機會?

回答

10

通過挖掘sql.el文件後,我發現一個變量,允許我在嘗試創建連接時指定一個端口。

此選項增加了GNU Emacs 24.1。

SQL-mysql的登錄-PARAMS

的連接到MySQL需要登錄參數列表。

我將此添加到我的Emacs的初始化文件:

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

默認端口爲0如果你想:被設置爲默認的MySQL端口您可以自定義sql-port

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

GNU Emacs 24.1中所有流行的RDMS系統都有一個sql-*-login-params變量。 sql-port用於MySQL和PostreSQL

+1

謝謝!一些注意事項:要指定默認的端口,你可以使用像`(add-to-list'sql-postgres-login-params'(port:default 5432)'`(注意`:default`標籤)這樣的結構。你應該在`add-to-list`之前加上'(require'sql)`,否則你會得到錯誤「Symbol的值作爲變量是void:sql-mysql-login-params」 – seriyPS 2013-06-27 17:02:52

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

我發現使用選項:

M-x customize-group 
SQL 

這包括標記設置:

Mysql Options: 

如果設置選項並保存它,就會有一個新行添加到您的.emacs:

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

(顯然,你應該使用實際的端口號。)

我使用XEmacs,所以你的里程可能會有所不同。