树莓派 docker 运行 mysql

2020年11月10日 1547点热度 0人点赞 0条评论

树莓派上运行docker是不同于其他平台,树莓派属于arm32架构,经过前期的踩坑,在树莓派中运行docker镜像需要注意镜像对于doker的支持,在官方镜像搜索页是有系统架构作为删选的,如果需要运行arm32架构的镜像,需要使用对应的版本。

前提需要安装 docker 和 docker-compose

使用镜像

biarms/mysql:5.7

docker-compose.yml

hypriot/rpi-mysql 为 树莓派版本支持的 MySQL
adminer 为 一个在线数据库管理客户端

在 /usr/local/docker/ 目录下新建 docker-compose.yml 编辑以下内容:
nano docker-compose.yml

version: '3'
services:
  db:
    image: biarms/mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    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
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql


  adminer:
    image: adminer
    restart: always
    ports:
      - 8081:8080

登录账户为 root
密码:123456

如果无法远程访问

(1)进入镜像中的mysql(ti 后面的字符串是mysql镜像ID)
docker exec -ti 2cbb0f246353 /bin/bash

(2)登录mysql
mysql -u root -p

(3) 修改权限
update user set host='%' where user='root' and host='localhost';

(4) 退出数据库
exit

(5) 重启数据服务
service mysql restart

(6) 退出docker镜像
exit

如果出现:

Duplicate entry '%-root' for key 'PRIMARY'

输入下面命令查看:
use mysql;
select user, host from user;
查看是否已经有 user=‘root’ 的 host 变成 %

刷新权限命令
flush privileges

浮生一程

读书-行路-悦人-识物