docker搭建nacos使用MySQL8作为数据源

一. Nacos简介

Nacos致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos可持久化配置文件,需要使用到数据库MySQL,下面咱们开始搭建mysql数据库;

1.1 搭建MySQL

Nacos1.3.1以后使用MySQL8作为数据源,这里咱们就使用mysql8.0.27版本;

1.1.1 拉取MySQL镜像
[root@freedev morton]# docker search mysql

在这里插入图片描述
目前比较官方的镜像有两个:
1. mysql,由Docker团队维护,运行mysql:latest即可使用,版本查看地址
2. mysql/mysql-server,由Oracle的MySQL团队维护,运行 mysql/mysql-server:latest即可使用,版本查看地址

本次安装咱们选用Oracle官方MySQL团队维护的镜像,安装文档地址

[root@freedev morton]# docker pull mysql/mysql-server:8.0.27
1.1.2. 准备MySQL配置文件my.cnf
[mysqld]
user=mysql
character-set-server=utf8
collation-server=utf8_unicode_ci
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
1.1.3. 创建MySQL数据盘挂载目录及配置文件挂载目录
[root@freedev data]# mkdir -p /data/mysql8/mysql-data  /data/mysql8/conf
1.1.4. 编写docker-compose.yml,创建数据库容器
version: '3.3'
services:
  mysql:
    image: mysql/mysql-server:8.0.27
    container_name: mysql8
    restart: always
    volumes:
      - /data/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw
      - /data/mysql8/mysql-data:/var/lib/mysql:rw
      - /etc/localtime:/etc/localtime:ro
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=password
    ports:
      - 3306:3306
1.1.5. 启动容器检查是否正常运行
[root@freedev log]# docker-compose up -d
Creating network "mysql8_default" with the default driver
Creating mysql8 ... done
[root@freedev log]# docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS                            PORTS                                     NAMES
6b634cec6f15   mysql/mysql-server:8.0.27   "/entrypoint.sh mysq…"   4 seconds ago   Up 3 seconds (health: starting)   33060-33061/tcp, 0.0.0.0:3307->3306/tcp   mysql8

1.1.6. 使用Navicat链接MySQL8,初始化nacos_config数据库

百度网盘链接: https://pan.baidu.com/s/1UlIEOr9Bw9F_sjKxNFhODw 提取码: uj38

1.2 搭建Nacos

1.2.1 拉取Nacos镜像
[root@freedev morton]# docker pull nacos/nacos-server:2.0.3
1.2.2 编写docker-compose
version: '3.3'
services:
  nacos:
    image: nacos/nacos-server:2.0.3
    restart: always
    container_name: nacos
    privileged: true
    environment:
      - TZ="Asia/Shanghai"
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=127.0.0.1
      - MYSQL_SERVICE_PORT=3307
      - MYSQL_SERVICE_USER=username
      - MYSQL_SERVICE_PASSWORD=password
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - NACOS_AUTH_ENABLE=true
      - NACOS_APPLICATION_PORT=8848
    volumes:
      - ./logs:/home/nacos/logs
    ports:
      - 8848:8848
    network_mode: host

启动镜像访问http://localhost:8848/
在这里插入图片描述
注: 如果启动时抛出时区异常,

java.sql.SQLException: The server time zone value xxxxx is unrecognized or represents more than one time zone

可添加启动参数即可解决: MYSQL_SERVICE_DB_PARAM
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8

参数配置参考地址

可以按照以下步骤搭建nacos连接mysql5.7: 1. 创建一个新目录,进入该目录并创建一个名为`docker-compose.yml`的文件。 2. 在`docker-compose.yml`文件中添加以下内容: ```yaml version: '3' services: nacos: image: nacos/nacos-server:2.0.3 container_name: nacos environment: - PREFER_HOST_MODE=hostname - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=db - MYSQL_SERVICE_PORT=3306 - MYSQL_DATABASE=nacos_config - MYSQL_USER=nacos - MYSQL_PASSWORD=nacos ports: - "8848:8848" depends_on: - db networks: - nacos-network db: image: mysql:5.7 container_name: nacos-mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nacos_config - MYSQL_USER=nacos - MYSQL_PASSWORD=nacos ports: - "3306:3306" volumes: - ./data:/var/lib/mysql networks: - nacos-network networks: nacos-network: driver: bridge ``` 上述配置文件中,我们定义了两个服务,一个是nacos,另一个是mysql5.7,其中nacos服务依赖于mysql服务。 3. 在终端中进入到该目录,并运行以下命令启动服务: ```bash docker-compose up -d ``` 4. 启动后,可以通过以下地址访问nacos控制台: ``` http://localhost:8848/nacos ``` 5. 在nacos控制台中,可以添加mysql数据源配置,具体步骤如下: - 点击左侧菜单栏的“配置管理”按钮; - 在“配置列表”页面中,点击“新建配置”按钮; - 在“新建配置”页面中,输入“Data Id”和“Group”,然后在“配置格式”中选择“Properties”; - 在“配置内容”中,输入以下内容: ``` spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://db:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos ``` 其中,db.url.0的值中的“db”是mysql服务在docker-compose.yml文件中定义的名称。 6. 添加完成后,可以在nacos控制台的“服务管理”页面中查看mysql服务是否注册成功。 以上就是使用docker-compose搭建nacos连接mysql5.7的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值