Fabric-Ca服务器设置问题

时间:2017-09-05 10:23:48

标签: hyperledger-fabric hyperledger

我正在使用给定的链接来探索fabric-ca http://fabric-ca.readthedocs.io/en/latest/users-guide.html

按照链接中的内容,我正在尝试使用mysql作为DB设置fabric-ca-server,我在fabric-ca-server-config.yaml

中指定相同的以下配置
db:
  type: mysql
  datasource: root:**123#@tcp(localhost:3306)/fabric_ca?parseTime=true
  tls:
      enabled: false
      certfiles:
        - db-server-cert.pem
      client:
        certfile: db-client-cert.pem
        keyfile: db-client-key.pem

我没有在'数据源'中传递参数tls = custom。因为我没有使用TLS

服务器启动时我得到了

root@Openwhisk-Node2-172:~/fabric-ca/fabric-ca-server# fabric-ca-server start -b admin:adminpw
2017/09/05 15:25:17 [INFO] Configuration file location: /root/fabric-ca/fabric-ca-server/fabric-ca-server-config.yaml
2017/09/05 15:25:17 [INFO] Starting server in home directory: /root/fabric-ca/fabric-ca-server
2017/09/05 15:25:17 [INFO] The CA key and certificate already exist
2017/09/05 15:25:17 [INFO] The key is stored by BCCSP provider 'SW'
2017/09/05 15:25:17 [INFO] The certificate is at: /root/fabric-ca/fabric-ca-server/ca-cert.pem
2017/09/05 15:25:17 [INFO] Initialized mysql database at root:Nokia123#@tcp(localhost:3306)/fabric_ca?parseTime=true
2017/09/05 15:25:17 [INFO] Home directory for default CA: /root/fabric-ca/fabric-ca-server
2017/09/05 15:25:17 [INFO] Listening on %!s(int=7054)%!(EXTRA string=http://0.0.0.0:7054)

但是当我尝试使用客户端注册bootstrap身份时,我得到了

fabric-ca-client enroll -u http://admin:adminpw@localhost:7054
2017/09/05 15:27:40 [INFO] User provided config file: /root/fabric-ca/fabric-ca-client1/admin/fabric-ca-client-config.yaml
2017/09/05 15:27:40 [INFO] Created a default configuration file at /root/fabric-ca/fabric-ca-client1/admin/fabric-ca-client-config.yaml
2017/09/05 15:27:40 [INFO] generating key: &{A:ecdsa S:256}
2017/09/05 15:27:40 [INFO] encoded CSR
Error: Error response from server was: Authorization failure

数据库已启动。 我还创建了一个名为fabric_ca的数据库 NO_ZERO_DATE相关更改也已完成

请帮助。如果我错过了一些步骤或者我做错了什么,请告诉我

1 个答案:

答案 0 :(得分:1)

如果您在运行可能是问题的fabric-ca-server之前实际创建了数据库。代码当前只是检查数据库是否存在。如果存在,则它不运行任何SQL安装脚本。所以最好的方法是从干净的MYSQL开始,它没有创建任何数据库实例。