因項(xiàng)目原因,需要給Nacos 1.4.1配置一個(gè)MySQL數(shù)據(jù)庫(kù)。我的Nacos配置在Docker中,于是進(jìn)入到Docker容器中,我的Nacos容器名稱(chēng)叫nacos
docker exec -it nacos bash
進(jìn)入容器之后,再進(jìn)入到配置文件所在目錄conf
cd conf
修改配置文件application.properties
vi ./application.properties
修改配置文件,修改如下位置:(這個(gè)是一個(gè)錯(cuò)誤示范,看看長(zhǎng)個(gè)記性)
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.user=${MYSQL_SERVICE_USER}db.password=${MYSQL_SERVICE_PASSWORD}
我的MySQL容器的地址是
172.17.0.2
查看docker容器ip地址的方法,看我另外一個(gè)帖子。賬號(hào)密碼都是root,修改成以下內(nèi)容
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:172.17.0.2}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.user=${MYSQL_SERVICE_USER:root}db.password=${MYSQL_SERVICE_PASSWORD:root}
按 wq 保存。然后exit退出容器。然后重啟nacos容器
docker restart nacos
無(wú)效。。。有點(diǎn)尷尬。然后度娘發(fā)現(xiàn)少改一行
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:””}
修改一下這行.(這個(gè)是一個(gè)錯(cuò)誤示范,看看長(zhǎng)個(gè)記性)
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:”mysql”}
保存退出。重啟容器之后,依舊無(wú)法連接數(shù)據(jù)庫(kù)。裂開(kāi)。。。。
后面發(fā)現(xiàn),這個(gè)值后面的mysql是不需要加雙引號(hào)的。。。修改成mysql
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
保存退出。重啟容器,順利連接上數(shù)據(jù)庫(kù)。最后附上完整and正確的配置修改。
修改前
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:””}db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.user=${MYSQL_SERVICE_USER}db.password=${MYSQL_SERVICE_PASSWORD}
修改后
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:172.17.0.2}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}db.user=${MYSQL_SERVICE_USER:root}db.password=${MYSQL_SERVICE_PASSWORD:root}