问题:如何让 emacs sql-mode 使用 mysql 配置文件 (.my.cnf)?

当我在 bash 提示符下键入mysql dbname时,我会使用我的.my.cnf文件中包含的usernamepasswordhost信息自动连接到数据库dbname

当我在 emacs 中使用M-x sql-mysql时,我再次被要求提供所有这些信息。

有没有办法让emacs sql模式使用我的.my.cnf文件中的信息?

解答

我认为这是不可能的,但您可以在模式配置本身中设置这些内容:

(setq sql-connection-alist
'((pool-a
(sql-product 'mysql)
(sql-server "1.2.3.4")
(sql-user "me")
(sql-password "mypassword")
(sql-database "thedb")
(sql-port 3306))
(pool-b
(sql-product 'mysql)
(sql-server "1.2.3.4")
(sql-user "me")
(sql-password "mypassword")
(sql-database "thedb")
(sql-port 3307))))

(defun sql-connect-preset (name)
  "Connect to a predefined SQL connection listed in `sql-connection-alist'"
  (eval `(let ,(cdr (assoc name sql-connection-alist))
    (flet ((sql-get-login (&rest what)))
      (sql-product-interactive sql-product)))))

(defun sql-pool-a ()
  (interactive)
  (sql-connect-preset 'pool-a))

查看这篇文章了解更多信息。

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐