PomeloFoundation/Pomelo.EntityFrameworkCore.MyCat

Unable to connect to any of the specified MySQL hosts.

yuangang19880212 opened this issue · 17 comments

62

运行的时候出现:

63

首先,我认为是我的数据库连接有问题,于是我尝试使用 Pomelo.EntityFrameworkCore.MySql , optionsBuilder.UseMySQL("server=localhost;database=db_wkmvc;uid=root;pwd=Yuan19880212");
只连接一个主数据库(db_wkmvc),数据插入正常:
64

这说明数据库连接是没问题的,又再次尝试 optionsBuilder .UseMyCat("server=localhost;database=db_wkmvc;uid=root;pwd=Yuan19880212") .UseDataNode("localhost", "db_wkmvc_1", "root", "Yuan19880212") .UseDataNode("localhost", "db_wkmvc_2", "root", "Yuan19880212");

使用Migration 数据迁移,奇怪的事情发生了,主数据库(db_wkmvc)并没有成功,但是从库(db_wkmvc1,db_wkmvc2)都增加新表成功:
65

Are you sure the ef core proxy for mycat is running while you applying the migrations?

@kagamine
66
不知道这是不是表示成功

Check your mycat uid and pwd is correct or not.

@kagamine
你指的是UseMyCat()中 mysql 的 uid和pwd吗,这个应该没问题,
很有可能是mycat服务的问题,windows上安装的可能有问题,我去服务器上试一下。thks

win下尝试以管理员身份运行cmd再运行代理

@kagamine 我在centos上安装了 mycat:
e1
e2

使用UseMycat :
e3
e4

总是操作超时
e5

我尝试使用 EntityFrameworkCore.MySql 数据库创建成功:

e8

在web中,同样尝试使用 EntityFrameworkCore.MySql 也是没有问题的:
e6

而 使用 UseMyCat 也是 操作超时:
e7

UseMySql你字符串要加Port=8066才是连mycat

MySQL for ef根本没法连mycat

@kagamine 我是用UseMyCat ,由于总是超时,于是我用UseMySQL测试一下 数据库连接是否正常。

你可以尝试用Navicat连接mycat,判断是mycat的问题还是ef的问题

@kagamine 可以连接
e9

你要实际具体打开某个数据库的某张表才行,这个步骤不足以说明能够连接

MyCat的EF代理没有正确运行,TESTDB是不存在的,代理没能成功修改schema.xml,所以导致提示连接不上,请检查代理是否有权限访问mycat目录下的所有内容。从你之前的截图看,EF向代理请求,代理返回401,就是登录失败。

@kagamine
e12
这应该是正常吧

e13

之前那个返回401 那是我在windows上的 现在是在centos上了

@kagamine 我是按照你的视频一步一步来的 搞了好几天 尝试了N个方法,还是这样。

这边无法还原你的错误,我这边亲测添加表、添加列的migrations一点问题都没有。