Nacos数据中心持久化部署

129 阅读2分钟
服务器安装mysql,用于数据持久化(centOS 环境下)

0.删除已安装的mysql

# 检查mariadb
rpm -qa|grep mariadb
# 删除mariadb
rpm -e --nodeps mariadb-server
rpm -e --nodeps mariadb
rpm -e --nodeps mariadb-libs
# 检查 mysql
rpm -qa|grep mysql
# 删除msql
rpm -e --nodeps xxx

1.下载 mysql yum 包

# 查看系统版本
cat /etc/redhat-release

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2.安装 mysql 源

yum localinstall mysql57-community-release-el7-11.noarch.rpm

# 检查是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

3.安装 mysql 服务端

yum install -y mysql-community-server

4.启动 mysql

systemctl start mysqld.service

5.查看mysql是否启动成功

systemctl status mysqld.service

6.获取root的随机生成密码并登录

grep 'temporary password' /var/log/mysqld.log 

mysql -u root -p

7.简化密码校验规则

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

8.重置密码并授权远程登录

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
 
FLUSH PRIVILEGES;

9.开机自启动

systemctl enable mysqld
systemctl daemon-reload

10.设置mysql默认字符集

vim /etc/my.cnf

[mysql]
default-character-set=utf8
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-storage-engine=INNODB
character_set_server=utf8
 
symbolic-links=0
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

11.重启生效

# 启动
mysql:service mysqld start
# 停止
mysql:service mysqld stop
# 重启
mysql:service mysqld restart

12.移除 mysql yum 包

rpm -qa | grep mysql
yum -y remove mysql57-community-release-el7-11.noarch
nacos 部署
# 创建数据库
create database nacos_config default charset 'utf8' collate 'utf8_bin';
# 创建nacos用户
grant all on nacos.* to 'nacos'@'%' identified by 'nacos';

下载指定版本(v2.0.3)压缩包,github.com/alibaba/nac… ,解压并进入conf文件。将 nacos-mysql.sql 导入数据库。

编辑docker compose文件

# docker compose 文件
vim docker-compose

# 编辑
version: "2"
services:
  nacos:
    image: nacos/nacos-server:v2.0.3
    container_name: nacos-standalone-mysql
    environment:
      PREFER_HOST_MODE: hostname
      MODE: standalone
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql ip
      MYSQL_SERVICE_DB_NAME: nacos_config
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: nacos
      MYSQL_SERVICE_PASSWORD: nacos
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9555:9555"
    restart: on-failure
    
    # yaml文件
    mv docker-compose docker-compose.yaml

启动服务

# 启动服务
docker-compose up -d

访问链接

http://ip:8848/nacos
用户名:nacos
密码:nacos

❗❗❗ nacos版本的坑:nacos官方目前的版本最新是2.2.0。使用镜像latest或者2.1.0以上的镜像,安装完成之后,正常启动。
可以创建命名空间,用户。但是新增配置就会报错:发布失败。请检查参数是否正确。
原因:nacos 初始化sql与nacos版本不一致,
nacos 2.1.0版本之后初始化数据库中config_info 和 his_config_info 表中新增了encrypted_data_key密钥字段
nacos.2.1.0 及之前数据库初始化脚本为nacos-mysql.sql,2.2.0 之后重命名为mysql-schema.sql。
所以推荐使用v2.0.3版本的镜像以及nacos-mysql.sql 文件导入数据库。

使用docker mysql

下载指定版本docker压缩包:github.com/nacos-group… 解压并进入example 文件夹

cd nacos-docker-2.0.3/example
vim standalone-mysql-5.7.yaml

${NACOS_VERSION} --> v2.0.3

服务启停

docker-compose -f standalone-mysql-5.7.yaml up -d
docker-compose -f standalone-mysql-5.7.yaml down