本帖最后由 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。。。 所以,才有了上面的记录。
参考链接:
|