#
#  Copyright 1999-2018 Alibaba Group Holding Ltd.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
jdbc.account.url=jdbc:mysql://localhost:3306/seata-demo
jdbc.account.username=root
jdbc.account.password=helloworld
jdbc.account.driver=com.mysql.jdbc.Driver
# storage db config
jdbc.storage.url=jdbc:mysql://localhost:3306/seata-demo
jdbc.storage.username=root
jdbc.storage.password=helloworld
jdbc.storage.driver=com.mysql.jdbc.Driver
# order db config
jdbc.order.url=jdbc:mysql://localhost:3306/seata-demo
jdbc.order.username=root
jdbc.order.password=helloworld
jdbc.order.driver=com.mysql.jdbc.Driver
