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

Dav*_*uer 8 mysql emacs sql-mode

当我输入mysql dbname在bash提示符下,我会自动连接到数据库dbnameusername,password以及host包含在我的资料.my.cnf文件.

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

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

Boz*_*sov 11

我不认为这是可能的,但您可以在模式配置中设置这样的东西:

(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))
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看此文章.