『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 954|回复: 5

[经验分享] Docker下用MYSQL替代默认的SQLite

[复制链接]

1

主题

19

帖子

817

积分

高级会员

Rank: 4

积分
817
金钱
798
HASS币
0
发表于 2022-12-11 18:56:33 | 显示全部楼层 |阅读模式
本帖最后由 arboreal 于 2022-12-15 15:44 编辑

记录一下在Ubuntu 18.04.6 LTS OS用docker安装MySQL 8.0.31。
1. 安装docker并获得docker和服务器内网IP

curl -fsSL https://get.docker.com | sh
    sudo service docker start
    sudo service docker status
      Active: active (running) sinceifconfig docker0
inet 172.17.0.1 metmask  255.255.0.0  broadcast  172.17.255.255
ifconfig
inet 10.0.0.67  netmask  255.255.255.0  broadcast  10.0.0.255
2. 下载并运行MySQL,根据平台选择命令,其中password是root用户的密码,docker-mysql是MYSQL的容器名(contains)。
     sudo docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -d arm64v8/mysql:latest --lower-case-table-names=1 --character-set-server=utf8mb4 --collation-server=uttf8mb4_general_ci
     or
     sudo docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -d amd64/mysql:latest --lower-case-table-names=1
3.检查MySQL运行状态
      sudo docker ps -a
IMAGE STATUS PORTS       NAMES
       arm64v8/mysql:latest               Up 6 seconds                    0.0.0.0:3306->3306/tcp         docker-mysql
    netstat -an | grep 3306
       tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN
4.在docker中操作MYSQL,其中172.17.0.1是homeassistant连接数据库的IP,password是新建用户dbuser的密码
      sudo docker exec -it docker-mysql /bin/bash
     bash-4.4#mysql -u root -p
     Enter password:password
     mysql>CREATE DATABASE dbname;
     mysql>CREATE USER 'dbuser'@'172.17.0.1' IDENTIFIED BY 'password';
     mysql>GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'172.17.0.1';
     mysql>FLUSH PRIVILEGES;
     mysql>exit;
5.最后在configuration.yaml加入recorder。其中10.0.0.67是使用server的内部IP
    recorder:
        db_url: mysql://dbuser:password@10.0.0.67/dbname?charset=utf8
6.如果有问题,检查home-assistant.log,确认连接的IP是否是172.17.0.1。

后记:本来打算是在Ubuntu 18.04.6 LTS OS下直接安装MYSQL的,结果发现默认安装的MYSQL是5.7版本,而HomeAssistants支持的MYSQL至少要8.0版本。
            然后照到如何手动安装MYSQL 8.0版本,结果发现不支持ARM。。。
            所以,才有了上面的记录。

参考链接:


回复

使用道具 举报

43

主题

1347

帖子

5570

积分

论坛元老

Rank: 8Rank: 8

积分
5570
金钱
4213
HASS币
40
发表于 2022-12-11 19:03:01 | 显示全部楼层
数据库不是不建议用docker吗,直接linux直装
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

1

主题

19

帖子

817

积分

高级会员

Rank: 4

积分
817
金钱
798
HASS币
0
 楼主| 发表于 2022-12-11 19:14:53 | 显示全部楼层
本帖最后由 arboreal 于 2022-12-11 20:09 编辑
jjcs 发表于 2022-12-11 19:03
数据库不是不建议用docker吗,直接linux直装

主要是我server用的是ARM64v8,我直接装不上MYSQL 8.0
回复

使用道具 举报

37

主题

405

帖子

4167

积分

元老级技术达人

积分
4167
金钱
3707
HASS币
250
发表于 2022-12-12 08:58:18 | 显示全部楼层
jjcs 发表于 2022-12-11 19:03
数据库不是不建议用docker吗,直接linux直装

我一直用的就是docker安装mariadb,只要记得把被指文件和数据库文件单独挂载出来,下次重装只需要把单独挂在的文件备份重来就行了。非常方便。
回复

使用道具 举报

2

主题

60

帖子

317

积分

中级会员

云端执行与狗不得入内

Rank: 3Rank: 3

积分
317
金钱
257
HASS币
10
发表于 2022-12-13 01:00:49 | 显示全部楼层
trz0332 发表于 2022-12-12 08:58
我一直用的就是docker安装mariadb,只要记得把被指文件和数据库文件单独挂载出来,下次重装只需要把单 ...

嗯,直接把新容器挂载到同一个路径就行
回复

使用道具 举报

2

主题

60

帖子

317

积分

中级会员

云端执行与狗不得入内

Rank: 3Rank: 3

积分
317
金钱
257
HASS币
10
发表于 2022-12-13 01:02:14 | 显示全部楼层
本帖最后由 Arnie97 于 2022-12-13 01:05 编辑
sudo apt install yum

草草草 开幕雷击
您这句跟本文的关系是?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 08:47 , Processed in 0.908268 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表