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

Dha*_*u K 3 mysql

我的数据库密码是 Dhanu@1 包含@,

在创建 FEDERATED 表时,我收到类似的错误

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

请帮我!

N00*_*mer 6

@不建议在密码中使用像这样的字符,这里有关于这个问题的类似讨论。

您可以通过使用CREATE SERVER语句来解决上述限制,如下例所示:

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

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

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

涉及类似主题的 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

  • @dhanu,你看过文档了吗?文档说`CREATE SERVER 语句在mysql 数据库的servers 表中创建一个新行` (2认同)