gpt4 book ai didi

mysql - Emacs' `sql-mysql`,ec2

转载 作者:行者123 更新时间:2023-11-29 12:58:29 27 4
gpt4 key购买 nike

尝试获取 Emacs' sql-mysql与 Amazon EC2 配合使用。

(从技术上讲,我认为这应该是在 super 用户中,但这里的 Emacs 问题多了 10 倍,所以我猜测这里有更多的 Emacs 用户。)

我已成功使用ssh ec2-user@<elastic ip address> ,并从该命令行 mysql -u root -p获得成功的 MySQL 提示符和 show databases; 。但我无法可靠地获取 Emacs' sql-mysql去工作(我认为它曾经有效过)。

因此,由于我的无知,我已经对变量进行了排列。即命令sql-mysql提示 User: , Password: , Database:Server:

对于User:Password: ,我使用的方法与 ssh ec2-user@<elastic ip address> 中的方法相同。

对于Database: ,我尝试将其留空,但我认为它起作用的时间我使用了 mysql

对于Server: ,我尝试了很多,包括

localhost
localhost@<elastic ip address>
ec2-user@<elastic ip address>
<elastic ip address>

我收到的少数错误消息之一是

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

我尝试过摆弄其他 Emacs 变量,例如 default-directorysql-port ,但没有明显效果。

<小时/>

附加说明:

我尝试过使用命令行 mysql有更多的选择,尝试模仿相同的变量,ala

mysql -u root -p -h localhost@ec2-<elastic ip address>.us-west-2.compute.amazonaws.com --port=3306

但我得到未知的服务器主机。

我看到提到使用命令 echo $db_host ,但我什么也没得到。这可能是我刚刚初始化了这一切。

我还进入了 AWS 控制台,并将端口 3306 的 MYSQL 规则添加到安全组。

最佳答案

快速概述您需要执行的操作:

  1. 编辑 ec2 服务器中的/etc/mysql/my.cnf 以允许来自外部的连接。某些安装仅允许本地主机。重新启动 mysqld 服务器。
  2. 从 AWS 控制台打开端口 3306,以便访问您的 IP。确保您可以使用“telnet IP 地址 3306”进行连接。您需要看到与从 ec2 机器执行 telnet localhost 3306 相同的内容。
  3. 创建/修改mysql用户,以便它可以从外部连接。某些 mysql 安装会创建 root@localhost 用户,但这与 root@your-IP 是不同的用户。检查一下,然后使用上面编写的 mysql 命令进行仔细检查。
  4. 在 emacs 中评估以下代码,然后执行 M-x sql-connect

Emacs 应该提示您连接数据库。只需输入“test”(emacs 将自动完成)

(setq sql-connection-alist
'(("test"
(sql-product 'mysql)
(sql-database "your-db-name")
(sql-server "your-ec2-ip")
(sql-user "user-name")
(sql-password "password"))))

关于mysql - Emacs' `sql-mysql`,ec2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23685015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com