Ubuntu20.04云服务器——Mysql部署&emqx-mysql认证配置

Ubuntu20.04云服务器——Mysql部署&emqx-mysql认证配置

1. Mysql部署

  1. 创建docker-compose.yml文件

    version: '3'
    services:
      mysqldb:
        # 镜像名
        image: mysql:5.7
        # 容器名(以后的控制都通过这个)
        container_name: mysql57
        # 重启策略
        restart: always
        environment:
          # 时区上海
          TZ: Asia/Shanghai
          # root 密码
          MYSQL_ROOT_PASSWORD: password
          # 初始化数据库
          MYSQL_DATABASE: database
          # 初始化用户
          MYSQL_USER: user1
          # 用户密码
          MYSQL_PASSWORD: 123456
          # 映射端口
        ports:
          - 3306:3306
        volumes:
          # 数据挂载
          - ~/mysql/mysql/data/:/var/lib/mysql/
          # 配置挂载
          - ~/mysql/mysql/conf/:/etc/mysql/conf.d/
          # 初始化目录挂载
          - ~/mysql/mysql/init/:/docker-entrypoint-initdb.d/
        command:
          --default-authentication-plugin=mysql_native_password
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
    
  2. docker compose部署mysql

    sudo docker-compose -f docker-compose.yml up -d
    
  3. 下载mysql客户端

    sudo apt install mysql-client-core-8.0 
    
  4. 在终端访问mysql

    mysql -u user1 -h 127.0.0.1 -p
    Enter password:123456
    

2. emqx配置mysql密码认证

  1. 创建数据库emqx

    create database emqx;
    use emqx;
    
  2. 创建数据表

    • password_hash: 必需,数据库中的明文或散列密码字段
    • salt: 可选,为空或不存在时视为空盐(salt = ""
    • is_superuser: 可选,标记当前客户端是否为超级用户,默认为 false
    CREATE TABLE `mqtt_user` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(100) DEFAULT NULL,
      `password_hash` varchar(100) DEFAULT NULL,
      `salt` varchar(35) DEFAULT NULL,
      `is_superuser` tinyint(1) DEFAULT 0,
      `created` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `mqtt_username` (`username`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
  3. 添加一名用户名为 admin、密码为 public、盐值为 slat_foo123、散列方式为 sha256 且超级用户标志为 true 的用户

    INSERT INTO mqtt_user(username, password_hash, salt, is_superuser) VALUES ('admin', SHA2(concat('public', 'slat_foo123'), 256), 'slat_foo123', 1);
    
  4. web端访问emqx

    http://x.x.x.x:18083
    
  5. 点击客户端认证,点击创建,选择Password-Based,点击下一步,选择Mysql,点击下一步,配置参数。

    服务:x.x.x.x:3306
    数据库:emqx
    用户名:root
    密码:password
    

    点击创建,mysql密码认证配置完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AndrewYy-chan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值