nacos-group / nacos-docker

This project contains a Docker image meant to facilitate the deployment of Nacos .
1.41k stars 903 forks source link

单机版本启动报错 #27

Closed 502647092 closed 5 years ago

502647092 commented 5 years ago
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [DELETE FROM config_info WHERE data_id='com.alibaba.nacos.testMasterDB']; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'nacos.config_info' doesn't exist
        at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
        at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1444)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:388)
        at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:523)
        at com.alibaba.nacos.config.server.service.BasicDataSourceServiceImpl$SelectMasterTask.run(BasicDataSourceServiceImpl.java:297)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        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: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'nacos.config_info' doesn't exist
        at sun.reflect.GeneratedConstructorAccessor73.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
        at com.mysql.jdbc.Util.getInstance(Util.java:360)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1618)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1549)
        at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
        at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
        at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
        at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:511)
        at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:508)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376)
        ... 9 more
paderlol commented 5 years ago

你使用的单机mysql版本吗?

paderlol commented 5 years ago

麻烦告诉我下使用的是什么版本的镜像 以及启动方式

502647092 commented 5 years ago

用DockerSwarm集群服务方式部署的

docker service create \
--name nacos_nacos \
--network sixi_core \
--publish mode=ingress,target=8848,published=8848,protocol=tcp \
--publish mode=ingress,target=9555,published=9555,protocol=tcp \
--env 'MODE=standalone' \
--env 'MYSQL_MASTER_SERVICE_DB_NAME=nacos' \
--env 'MYSQL_MASTER_SERVICE_HOST=192.168.2.230' \
--env 'MYSQL_MASTER_SERVICE_PASSWORD=nacos' \
--env 'MYSQL_MASTER_SERVICE_PORT=3306' \
--env 'MYSQL_MASTER_SERVICE_USER=nacos' \
--env 'MYSQL_SLAVE_SERVICE_HOST=192.168.2.230' \
--env 'MYSQL_SLAVE_SERVICE_PORT=3306' \
--env 'PREFER_HOST_MODE=hostname' \
--env 'SPRING_DATASOURCE_PLATFORM=mysql' \
--label 'com.docker.stack.image=nacos/nacos-server:latest' \
--label 'com.docker.stack.namespace=nacos' \
--container-label 'com.docker.stack.namespace=nacos' \
--mount type=volume,source=nacos_nacos,destination=/home/nacos/logs \
--config source=nacos-custom.properties,target=/home/nacos/init.d/custom.properties,mode=0444 \
--restart-condition on-failure \
nacos/nacos-server:latest

docker-compose

version: "3"

services:
  nacos:
    image: nacos/nacos-server:latest
    container_name: nacos-standalone-mysql
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=192.168.2.230
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos
      - MYSQL_MASTER_SERVICE_PORT=3306
      - MYSQL_SLAVE_SERVICE_HOST=192.168.2.230
      - MYSQL_SLAVE_SERVICE_PORT=3306
      - MYSQL_MASTER_SERVICE_USER=nacos
      - MYSQL_MASTER_SERVICE_PASSWORD=nacos
    configs:
      - source: nacos-custom.properties
        target: /home/nacos/init.d/custom.properties
    volumes:
      - nacos:/home/nacos/logs
    ports:
      - "8848:8848"
      - "9555:9555"
    restart: on-failure
configs:
  nacos-custom.properties:
    external: true
volumes:
  nacos:
    driver_opts:
      type: nfs4
      o: addr=192.168.2.219,rw
      device: ":/home/app/nfs/docker/nacos"
networks:
  default:
    external:
      name: sixi_core
paderlol commented 5 years ago

数据库镜像都没配置?数据库用的自己的数据库的话 你的自己初始化sql脚本

502647092 commented 5 years ago

数据库镜像都没配置?数据库用的自己的数据库的话 你的自己初始化sql脚本

数据库脚本在哪里 官方的文档上没看到 麻烦提供一下

paderlol commented 5 years ago

数据库脚本在 https://github.com/alibaba/nacos/tree/master/distribution/conf