Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

启动错误 #1138

Closed
wlkfec opened this issue May 28, 2018 · 27 comments
Closed

启动错误 #1138

wlkfec opened this issue May 28, 2018 · 27 comments

Comments

@wlkfec
Copy link

wlkfec commented May 28, 2018

配置的数据库db info经验证后正确但是 启动依然提示连接错误
Could not create connection to database server

@nobodyiam
Copy link
Member

Exception一般都有Caused by的,可以看下具体的报错信息。

@wlkfec
Copy link
Author

wlkfec commented May 29, 2018

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
这就是异常信息 也没提示别的错误

@nobodyiam
Copy link
Member

这个是驱动层抛出的错误了,应该会有更多信息的。如果实在找不到的话,可以抓包或者找DBA一起看看。

@nobodyiam
Copy link
Member

看一下mysql是否是8.0的,这个需要升级mysql connector的。。

详见 #1096

@wlkfec
Copy link
Author

wlkfec commented May 30, 2018

确实查了下MySQL的版本是5.8的 然后换了一个5.7的版本 出现如下错误:2018-05-30 14:39:49.424 ERROR 58950 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APOLLO-CONFIGSERVICE/172.16.0.77:apollo-configservice:8080 - was unable to refresh its cache! status = Cannot execute request on any known server

@wlkfec
Copy link
Author

wlkfec commented May 30, 2018

是端口问题吗

@nobodyiam
Copy link
Member

刚启动报这个错是正常的,因为config service要向eureka注册,但是eureka还没启动好,过一会儿就OK了。

@wlkfec
Copy link
Author

wlkfec commented May 31, 2018

我看到这个说明了 但是我试了几次都没好 好像是只要报了这个错 整个进程就停止了

@nobodyiam
Copy link
Member

进程停止的话,看看有没有别的异常信息,或者看看是不是内存不够了

@nobodyiam
Copy link
Member

mysql 8.0需要用最新的master代码,后续会在0.11.0发布支持,详见 #1147

@nobodyiam
Copy link
Member

0.11.0版本已经发布,具体可以参考 Release Notes

case先关闭了,如还有问题,可以提供更多信息,或进群交流。

@minemine678
Copy link

2018-09-15 11:49:31.838 ERROR 9321 --- [main] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APOLLO-CONFIGSERVICE/172.27.0.8:apollo-configservice:8080 - was unable to refresh its cache! status = Cannot execute request on any known server

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 这是什么问题啊?

@nobodyiam
Copy link
Member

@minemine678 刚启动时报这个错是正常的,因为eureka和config service是同一个进程,这时eureka还没起来。

@minemine678
Copy link

minemine678 commented Sep 17, 2018 via email

@nobodyiam
Copy link
Member

如果一直报的话,估计是配置有问题了,可以把完整的日志贴上来看看。

@minemine678
Copy link

minemine678 commented Sep 18, 2018 via email

@nobodyiam
Copy link
Member

估计是ApolloConfigDB.ServerConfig中的eureka.service.url配置不对

@minemine678
Copy link

minemine678 commented Sep 18, 2018 via email

@nobodyiam
Copy link
Member

看一下文档吧:1.eureka.service.url - Eureka服务Url

image

@minemine678
Copy link

minemine678 commented Sep 19, 2018 via email

@nobodyiam
Copy link
Member

外网地址只要能访问到也是可以的,需要注意的是eureka.service.url配置是类似 http://x.x.x.x:8080/eureka

@minemine678
Copy link

minemine678 commented Sep 21, 2018 via email

@MrLW
Copy link

MrLW commented Apr 5, 2019

我就是这样配置的啊,为什么还是启动不了呢? jaychou206639073@aliyun.com 发件人: Jason Song 发送时间: 2018-09-19 22:13 收件人: ctripcorp/apollo 抄送: Jetty; Mention 主题: Re: [ctripcorp/apollo] 启动错误 (#1138) 外网地址只要能访问到也是可以的,需要注意的是eureka.service.url配置是类似 http://x.x.x.x:8080/eureka — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

你好你的问题解决了么。我有类似问题。

@kobe1996
Copy link

2019-10-17 08:01:13.592 INFO 3502 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APOLLO-ADMINSERVICE/10.179.132.211:apollo-adminservice:8990: registering service...
2019-10-17 08:01:13.594 ERROR 3502 --- [DiscoveryClient-InstanceInfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused)
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)
at com.sun.jersey.api.client.Client.handle(Client.java:652)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.register(AbstractJerseyEurekaHttpClient.java:56)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)
at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:815)
at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:104)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
... 29 common frames omitted

2019-10-17 08:01:13.594 WARN 3502 --- [DiscoveryClient-InstanceInfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failure
2019-10-17 08:01:13.594 WARN 3502 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_APOLLO-ADMINSERVICE/10.179.132.211:apollo-adminservice:8990 - registration failed Cannot execute request on any known server
遇到同样的问题

@nobodyiam
Copy link
Member

nobodyiam commented Oct 18, 2019

@kobe1996

往上看看实际的报错,eureka连接不上不会导致启不来

@bamstars
Copy link

我也遇到这个问题,搭测试环境,用的quick start all-in jar,demo.sh 启动, log里报下列错误:

2020-05-25 01:56:57.021 ERROR 2054 --- [main] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused)

DiscoveryClient_UNKNOWN/iZ8vbh6wqcumc4x3uxio58Z - was unable to refresh its cache! status = Cannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

出于改错习惯总喜欢找第一个报错的地方,但作者有解释这个错不至于crash整个服务,后面会正常。网上又说是mysql版本或驱动有问题,所以把mysql docker从5.7.30 降到5.7.24降到文档提到5.7.11版本,不管用。

神奇的是,出错的是ECS centos linux 7(连的是上面运行的docker mysql)。同一份 quick start ,本机mac就没事(连的本机mysql)

在往下看日志,发现新错误
2020-05-25 01:57:05.765 ERROR 2054 --- [localhost-startStop-1] o.h.engine.jdbc.spi.SqlExceptionHelper : Table 'ApolloConfigDB.ServerConfig' doesn't exist
数据库表都是有的,从生产环境直接导出来来灌入docker mysql,navicat连上去挨个看数据都正常。开始没在意,突然发现ServerConfig是大小写,而灌入的表全都小写。想到mysql默认表都是区分大小写的, 所以把所有表改成单词首字母大写,问题解决!!

另外修改改my.cnf 里lower_case_table_names忽略表名大小写也应该可以,大家遇到这个问题试试看吧,我现在太晚了就不验证了,又是一个很困但是不眠之夜呀

@nobodyiam
Copy link
Member

@bamstars apollo安装sql文件中的表名都是大小写正确的,是否导入的时候有误导致变全小写了?配置 lower_case_table_names 应该也是可以的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants