背景: 1.已经常见了 Solo 数据库 2.已经给 root 用户增加权限 3.启动 docker 命令如下 docker run --detach --name Solo --network=host \ --env RUNTIME_DB='MYSQL' \ --env JDBC_USERNAME='root' \ ..

docker 启动 solo 报错

背景:
1.已经常见了 Solo 数据库
2.已经给 root 用户增加权限
3.启动 docker 命令如下

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="Jiate888!" \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://**.**.***.**:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=www.cfreedomc.fun --server_port=

报错信息

java.sql.SQLException: Access denied for user 'root'@'**.**.***.**' (using password: NO)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at org.b3log.latke.repository.jdbc.util.Connections.getConnection(Connections.java:194)
at org.b3log.solo.service.InitService.initTables(InitService.java:178)
at org.b3log.solo.service.InitService_$$_jvst36c_3f._d7initTables(InitService_$$_jvst36c_3f.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.b3log.latke.ioc.JavassistMethodHandler.invoke(JavassistMethodHandler.java:116)
at org.b3log.solo.service.InitService_$$_jvst36c_3f.initTables(InitService_$$_jvst36c_3f.java)
at org.b3log.solo.SoloServletListener.contextInitialized(SoloServletListener.java:106)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:952)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:558)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:917)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:847)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.server.Server.start(Server.java:416)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.server.Server.doStart(Server.java:383)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.b3log.solo.Starter.main(Starter.java:177)
[ERROR]-[2019-08-08 17:27:56]-[org.b3log.solo.service.InitService:186]: Check tables failed, please make sure database existed and database configuration [jdbc.*] in local.props is correct [msg=Access denied for user 'root'@'**.**.***.**' (using password: NO)]
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    832 引用 • 6269 回帖 • 680 关注
  • 安装

    你若安好,便是晴天。

    77 引用 • 991 回帖
  • Q&A

    提问之前请先看《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    1251 引用 • 8183 回帖 • 576 关注
29 回帖
请输入回帖内容...
  • cuijianzhe

    数据库用户确定能登录 MySQL 吗?(远程登录还是本地登录)

  • cuijianzhe

    image.png

  • cuijianzhe

    这是我的配置 你可以参考下

    1 回复
  • cfreedomc

    感谢,我起的是云服务器里的,数据库用户都可以正常登陆的

    1 回复
  • 88250

    要确定一下是否用配置的 IP 可以登录。

    2 回复
  • cfreedomc

    确认了 我用这个 IP 在远程 navicat 上正常可以进入

  • cfreedomc

    image.png

    1 回复
  • InkDP

    jdbc:mysql://**.**.***.** 这个是什么鬼

    java.sql.SQLException: Access denied for user 'root'@'**.**.***.**' (using password: NO)

    1 回复
  • 88250

    要不你用 127.0.0.1 配置一下试试?

    1 回复
  • cfreedomc

    哈哈 这个是我手动屏蔽了自己的 IP 哈哈

    1 回复
  • InkDP

    这里一直写的都是 127.0.0.1

    2 回复
  • cfreedomc

    我一会尝试下,先工作会 ~

  • cfreedomc

    依然报错 变成 Access denied for user 'root'@'localhost'(using password:NO)

    1 回复
  • cfreedomc

    image.png

    1 回复
  • 88250

    你的 Docker 版本是多少?

    1 回复
  • InkDP

    瞎鼓捣吧,我也不知道咋回事了。咋我觉得你们的东西这么容易错呢

  • cfreedomc

    image.png

    1 回复
  • 88250

    安装个最新版试试,网络模式是 host 的时候 127.0.0.1 在低版本 Docker 上表现和现在的版本不一样。

    1 回复
  • ellenbboe

    Access denied for user 'root'@'localhost'(using password:NO)这个是数据库的问题吧

  • cfreedomc

    已经换了最新的 docker,还是一样的问题, 我发现是不是我的数据库不是在 docker 里的,我是在云服务器上装的数据库,我看 jinjianh 的帖子里是在 docker 里面装的

    1 回复
  • 88250

    网络模式用 host 的话可以直连宿主机的 MySQL 的,现在有个问题是为啥日志打印 localhost 而不是 127.0.0.1。日志如果打印的是 localhost 的话说明是在尝试连接 Docker 进程内的 localhost,不是宿主机上的。

    1 回复
  • cfreedomc

    我解决了...感觉是我这个"jiate888!" 这个密码解析不了, 我添加了新用户 Solo 密码也是 Solo 就可以了

    1 回复
  • 88250

    哦,以 ! 结尾的密码报错有用户在我们另一个项目(golang)中报告过,但我们还没有进行确认。我应该早点注意到的,总之,能用就行 😂

    2 回复
  • cfreedomc

    😭 没事 我再捣鼓捣鼓 感谢 D 大和社区的各位

  • godboys

    MySQL 是什么版本的 8.0 的有问题

    1 回复
  • cfreedomc

    我用的 5.7 的

  • fewok 1

    这里是 shell 命令,双引号里可以附带变量以及一些简单运算,比如 ${}是变量引入

    建议 D 大将双引号改成单引号,避免新人入坑。

    1 操作
    fewok 在 2019-09-27 14:44:54 更新了该回帖
  • GitHubtianjingle

    请问您这个日志是在哪里看的,我找不到日志啊,用 docker 部署的,然后 docker ps 啥也没有,docker logs 又没有合适的 containerId。

    1 回复
  • fewok

    docker ps -a

请输入回帖内容 ...