6

リモート サーバーからローカル マシンへのデータのフェデレーションで問題が発生しています。実行しようとしたとき、私のリモートテーブルは MyISAM です

CREATE TABLE `wtc_test (
    `wtc_companyworkday_id` bigint(20) DEFAULT NULL,
) ENGINE=FEDERATED  DEFAULT CHARSET=latin1
CONNECTION='mysql://pentah:0p@l@192.1**.*.*:3306/replica/wtc_test';

次のエラーが発生しました:-

[Err] 1432 - Can't create federated table. The data source connection string 'mysql://pentah:0p@l@192.1*.*:3306/replica/wtc_test' is not in the correct format

私が見る理由は、パスワードに「@」文字が含まれているためです。誰か助けてください。

4

2 に答える 2

5

MySQL のドキュメントによると、CONNECTION 文字列を使用する場合、パスワードに「@」文字を使用することはできません。「create server」ステートメントを使用すると、この制限を回避できます。

例えば:

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

Server Link が作成されたら、この接続を使用するテーブルを作成するには:

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

詳細については、以下のリンクを参照して ください。 https://dev.mysql.com/doc/refman/5.6/en/federated-usagenotes.html https://dev.mysql.com/doc/refman/5.1/en /federated-create.html

于 2015-06-22T16:55:23.130 に答える