使用用户名、密码和主机创建联合MySQL表

3

我的数据库密码是Dhanu@1,其中包含@符号。

在创建联合表时,我遇到了以下错误:

无法创建联合表。数据源连接字符串 mysql://dhanu:Dhanu@1@localhost:3306/mydb/items 格式不正确。

请帮助我!

1个回答

6

在密码中使用类似 @ 这样的字符并不建议,关于这个问题的类似讨论可以在 这里 找到。

您可以通过使用下面示例中所示的 CREATE SERVER 语句绕过上述限制:

CREATE SERVER federatedTablelink
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'USERNAME', HOST 'Host_IP', DATABASE 'DB_NAME', 
PORT '3306',Password 'PASSWORD');

一旦使用上述步骤创建了服务器链接,您可以使用以下内容创建使用此连接的表:

CREATE TABLE test (
id     INT(20) NOT NULL AUTO_INCREMENT,
name   VARCHAR(32) NOT NULL DEFAULT '',
PRIMARY KEY  (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='federatedTablelink/test';

以下是涉及类似主题的MySQL文档:

https://dev.mysql.com/doc/refman/5.6/en/federated-usagenotes.html

https://dev.mysql.com/doc/refman/5.1/en/federated-create.html


如何检查服务器是否已创建?我的意思是询问SQL查询来查看创建的服务器。 - Dhanu K
2
@dhanu,你有看过文档吗?文档中写道:CREATE SERVER语句会在mysql数据库的servers表中创建一行新记录。 - N00b Pr0grammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接