Укажите номер порта в Emacs sql-mysql
Вопрос
Я использовал интерактивный режим sql Emacs для общения с сервером базы данных MySQL и получил от этого удовольствие.Разработчик настроил еще одну базу данных с новым номером порта, отличным от стандартного, но я не знаю, как получить к ней доступ с помощью sql-mysql.
Как указать номер порта при попытке подключения к базе данных?
Было бы еще лучше, если бы Emacs мог запросить у меня номер порта и просто использовать значение по умолчанию, если я не укажу.Есть ли шансы на это?
Решение
Покопавшись в файле sql.el, я нашел переменную, которая позволяет мне указать порт при попытке создать соединение.
Эта опция была добавлена в GNU Emacs 24.1.
sql-mysql-логин-парамс
Список параметров входа, необходимых для подключения к MySQL.
Я добавил это в свой файл инициализации Emacs:
(setq sql-mysql-login-params (append sql-mysql-login-params '(port)))
Порт по умолчанию — 0.Если вы хотите установить это порт MySQL по умолчанию, вы можете настроить sql-port
(setq sql-port 3306) ;; default MySQL port
Eсть sql-*-login-params
переменная для всех популярных систем RDMS в GNU Emacs 24.1. sql-port
используется как для MySQL, так и для PostreSQL
Другие советы
(setq sql-mysql-options (list "-P <port number>"))
Я нашел вариант, используя:
M-x customize-group
SQL
Это включало настройку с надписью:
Mysql Options:
Если вы установите эту опцию и сохраните ее, в ваш .emacs будет добавлена новая строка:
(custom-set-variables
'(sql-mysql-options (quote ("-P ???"))))
(Очевидно, вам следует использовать фактический номер порта.)
Я использую XEmacs, поэтому ваш опыт может отличаться.