-
此sql用于创建nacos server运行所需的表和数据,去下载nacos server安装包,地址是:https://github.com/alibaba/nacos/releases/download/1.1.0/nacos-server-1.1.0.tar.gz ;
-
下载的安装包解压后,文件nacos/conf/nacos-mysql.sql就是我们所需的sql脚本;
-
打开此脚本,可见内容中没有创建数据库,这样的脚本在mysql的docker容器内无法自动执行,需要在sql文件的开始位置添加以下内容:
CREATE DATABASE nacos_config;
use nacos_config;
- 将文件nacos-mysql.sql放在docker-compose.yml所在目录下;
docker-compose.yml中增加mysql
接下来在容器编排文件docker-compose.yml中增加mysql容器:
- 在docker-compose.yml中增加mysql容器,新增的mysql编排信息放在最前面,内容如下:
mysql:
image: mysql:5.7.27
container_name: mysql
restart: unless-stopped
volumes:
-
./nacos-mysql.sql:/docker-entrypoint-initdb.d/nacos-mysql.sql
-
./mysqldata:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: 123456
上述内容有几处需要注意:
a. 第一个volumes参数将宿主机的nacos-mysql.sql映射到容器的/docker-entrypoint-initdb.d/目录,mysql容器启动时会执行这个目录下的所有以sh和sql结尾的文件;
b. 第二个volumes参数将docker-compose.yml文件所在位置的mysqldata目录映射到容器的/var/lib/mysql目录,这样数据库所有数据都保存在宿主机上了,此mysqldata文件夹容器启动时自动创建;
c. command参数设置了mysql的鉴权方式是密码方式;
d. 环境变量MYSQL_ROOT_PASSWORD设置了mysql的root密码为123456;