2008-08-15 6 views
17

Я использую интерактивный режим SQL Emacs для общения с сервером db MySQL и получил удовольствие. Разработчик настроил еще один db на новый номер порта, отличный от номера по умолчанию, но я не знаю, как получить к нему доступ, используя 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 

Существует переменная sql-*-login-params для всех популярных систем RDMS в GNU Emacs 24.1. sql-port используется как для MySQL, так и для PostreSQL

+1

Спасибо! Некоторые примечания: для указания порта по умолчанию вы можете использовать конструкцию типа `(add-to-list 'sql-postgres-login-params' (порт: по умолчанию 5432))` (обратите внимание на тег `: default`). И вы должны добавить `(require 'sql)` перед `add-to-list`, иначе вы получите ошибку« Значение символа как переменной пустое: 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, поэтому ваш пробег может отличаться.