- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
请查看下面的修改,我将保留原始问题以帮助其他人。
我正在尝试通过 Apps 脚本和 JDBC 连接到本地 MySQL 服务器,但我不断收到两个错误之一。这段代码:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost", "root", "xxx");
}
给出错误无法建立数据库连接。检查连接字符串、用户名和密码。
这段代码:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost:3306", "xxx", "pass");
}
给出无效参数:url
的错误。
我已经尝试了数十种组合,但无法正常工作。从 Apps 脚本登录的尝试不会显示在 MySQL 的访问日志中(即,如果我尝试使用错误的信息在本地登录,我会看到 [Note] Access denied for user 'host'@'localhost' (使用密码:YES)
。我已授予 root 适当的访问权限:
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
我是否必须执行其他操作才能将本地数据库公开到互联网/Google Apps 脚本?
编辑:
我现在可以从 MySQL 日志中获取访问被拒绝的注释(例如 Access denied for user 'root'@'12.123.12.123' (using password: YES)
),但是应用程序仍然无法连接。我尝试将 bind-address
添加到我的公共(public) IP,但 MySQL 无法启动,我得到 ([ERROR] 无法启动服务器:在 TCP/IP 端口上绑定(bind):无法分配请求的地址
)
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://12.123.12.123:3306", "root", "xxx");
}
EDIT2:我更改了 bind-address=0.0.0.0,这确实允许我在数据库日志中遇到拒绝访问错误,但仍然无法连接。我已经成功连接到互联网上其他开放的 MySQL 数据库(例如 ensembldb.ensembl.org:3306),但我仍然无法连接到我的本地数据库。
最佳答案
终于搞定了,这是我如何让它工作的:
编辑 my.cnf(这个文件可以位于几个不同的地方,甚至可能不存在,我把我的放在这里 /usr/local/etc/
:
[mysqld]
bind-address=0.0.0.0
skip-host-cache
skip-name-resolve
将端口 3306 开放到互联网(对于 Xfinity,这意味着转到 http://10.0.0.1/ > 单击左侧的“高级”>“端口转发”> 底部的“添加设备”,找到运行 MySQL 的设备然后点击添加)
在 MySQL 和 FLUSH PRIVILEGES;
中授予适当的权限.你可以用 GRANT ALL PRIVILEGES ON *.* TO <USER>@'%' IDENTIFIED BY '<PASSWORD>'
做到这一点,但允许任何 IP,下面的 Python 脚本将授予 Google IP。您应该对照 Google 的 JDBC 文档检查此 IP 列表。
from sqlalchemy import create_engine, MetaData
conString = 'mysql+pymysql://<USER>:<PASSWORD>@localhost:3306/<DB>'
mysql = create_engine(conString)
ips = ['64.18.0.0 - 64.18.15.255',
'64.233.160.0 - 64.233.191.255',
'66.102.0.0 - 66.102.15.255',
'66.249.80.0 - 66.249.95.255',
'72.14.192.0 - 72.14.255.255',
'74.125.0.0 - 74.125.255.255',
'173.194.0.0 - 173.194.255.255',
'207.126.144.0 - 207.126.159.255',
'209.85.128.0 - 209.85.255.255',
'216.239.32.0 - 216.239.63.255']
for ip in ips:
ip2 = ip.replace(' - ', '/')
try:
sql = "CREATE USER '<USER>'@'" + ip2 + "' identified by '<PASSWORD>';"
mysql.execute(sql)
except:
print ip2
sql = "GRANT ALL PRIVILEGES ON <DB>.* TO '<USER>'@'" + ip2 + "';"
mysql.execute(sql)
关于mysql - 无法通过 Apps 脚本 (JDBC) 连接到本地 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43965348/
我一直在使用 Databricks JDBC 驱动程序版本 2.6.22,并尝试升级到 2.6.27。但是,升级后我收到消息说我的 JDBC URL 在尝试连接时无效。这些 JDBC URL 与旧版本
似乎JDBC Spec没有详细说明数据源连接池中alive or idle connections的准确含义。它只是具体实现吗? DBCP2如何或 HikariCP实际检查连接状态? 下面没有事件事务
在“XPages 扩展库”一书中,第 12 章,第 409 页有一个 JDBC 连接文件的例子: org.apache.derby.jdbc.EmbeddedDriver jdbc:
谁能告诉我 jdbc 是如何工作的?它如何设法与 DBMS 通信?因为 DBMS 可能是用其他编程语言编写的。 最佳答案 与数据库的通信由 JDBC 驱动程序处理,这些驱动程序可以使用各种策略与数据库
我想知道是否有人可以帮助我解决这个问题。我在尝试使用 Spring JDBC 编写代码时遇到了一个问题。当我运行服务器时,我收到了标题中提到的消息。我google了一下,有人说你应该导入ojdbc.j
我只是想运行一个示例 hivejdbc 客户端程序,但它给我一个内存不足的错误。 import java.sql.SQLException; import java.sql.Connection; i
我需要将 Google Spreadsheet 与 JasperReports Server 一起使用,为此我需要一个用于 Google Spreadsheet 的 JDBC 连接器。 我找到了这个
我需要将大量行(最多 100,000 行)插入到 6 个不同的 DB2 表中。我正在使用 Java JDBC 来完成它。我想在单个数据库事务中完成所有操作,以便在遇到任何问题时可以回滚整个操作。在某处
再次为自己是 Jmeter 新手道歉——我对 JDBC 请求有点困惑——我在过去的 3 个小时里浏览了这个网站上的帖子——但我找不到任何相关的东西(除非我我错过了一些东西)。 我的环境:Jmeter
我们正在创建一个带有 MySQL 后端的 XPages 应用程序。应用程序将被多个客户使用。每个都有自己的 NSF 数据库和相应的 MySQL 数据库。每个客户都有自己的 MySQL 用户名。我们正在
昨天我遇到了一个大问题。在我当前的项目中,我使用 Oracle 的 JDBC 的 ojdbc6 实现进行连接,但我还需要处理例如 oracle 8 数据库,这对于这个 JAR 是完全不可能的。 你会说
这个问题在这里已经有了答案: Closing JDBC Connections in Pool (3 个答案) 关闭 2 年前。 假设我有以下代码 DataSource source = (Data
我有 Informix 数据库,时间戳字段定义为 YEAR TO SECOND。 当我使用 JDBC rs.getString(column) 显示此字段时,它使用带毫秒的格式,因此此字段如下所示:
看完本教程之后; https://www.youtube.com/watch?v=ZnI_rlrei1s 我正在尝试使用logstash和jdbc获取我的本地主机mysql(使用laravel val
有人给我小费。 { "type": "jdbc", "jdbc": { "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver"
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试从mysql表中将1600万个文档(47gb)索引为elasticsearch索引。我正在使用jparante's elasticsearch jdbc river执行此操作。但是,在创建河
我正在尝试使用JDBC河将我的MySQL数据库复制到我的ElasticSearch索引中。 但是,每当我启动服务器时,与MySQL表的count(*)相比,创建的文档数量就增加了一倍。我通过清空索引并
使用新的logstash jdbc 连接器: https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html后续的
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是一名优秀的程序员,十分优秀!