Linux aarch64架构中使用docker安装mysql8

Linux aarch64架构中使用docker安装mysql8

1、遇到问题:

官网下载mysql包,安装完成后,启动mysql一直显示-bash: ./mysqld: 无法执行二进制文件。

网上找了各种资料,但是都没有作用,怀疑自己操作姿势不正确,以为是自己包下错了(其实也是包不对),重新下载了不同的各种包,换了各种安装方法,发现仍旧启动不了。

无意间发现了一篇友友在aarch64架构下安装mysql,他提到了一嘴说这个架构下目前mysql官网上所有的包都是不能直接用滴,唯一的解决方法就是使用docker。

这我不得赶紧查看一下我的Linux架构。

在这里插入图片描述

这一下找到了问题所在,好吧,那就上docker吧,还能咋滴。

2、在服务器A上安装docker

yum -y install docker
service docker start

3、下载镜像到服务器A

docker pull arm64v8/mysql

4、将镜像下载到服务器目录

docker save -o mysql.tar arm64v8/mysql:latest

5、启动mysql容器

docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d arm64v8/mysql:latest --lower-case-table-names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

6、进入容器

docker exec -it docker-mysql /bin/bash

7、登陆mysql

mysql -uroot -p  #密码是刚刚设置的123456

8、修改密码和权限

mysql> use mysql;
mysql> delete from user where user='root' and host='localhost';
mysql> alter user 'root'@'%' identified by '新密码';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
mysql> flush privileges;

9、补充:docker操作

  • 操作镜像命令

    docker images   #镜像列表
    docker rmi 镜像id #删除镜像
    docker rm 容器id  #删除容器
    
  • 容器状态

    docker ps -a
    
  • 操作容器

    docker container start #容器id前3位  
    docker container stop #容器id前3位 
    docker container rm #容器id前3位
    
  • 备份

    #备份
    docker exec -it 容器id mysqldump  --all-databases -uroot -p123456 >/root/back.sql
    #恢复
    mysql > source /databak/data_center.bak
    
  • 将linux系统下文件复制到容器目标目录:

    docker cp /data/download/data_center.bak 容器id:/databak/
    
  • ​ 启动容器

    #启动容器
    # -d 后台运行
    docker run -d -it --name 容器别名 -p 主机端口:容器端口  容器名称
    #  -v 主机的目录 /data 映射到容器的 /data。
    docker run -p 80:80 -v /data:/data -d nginx:latest
     
     
    #进入容器
    docker attach 容器名称/id
    #如果是通过 attach 进入的容器,在退出容器的时候,如果不想让容器停止运行的话,就不能使用exit命令或者Ctrl+D快捷键的形式退出,而是使用 Ctrl + P + Q 组合键退出容器。
    docker exec -it 容器名称/id/bin/bash
    #如果是通过 exec 命令进入的容器,在退出容器的时候,就可以使用exit或者Ctrl+D快捷键退出容器,同时容器不会停止运行,这也是exec与attach的最大区别。当然,你也可以使用Ctrl + P + Q 组合键退出容器,容器一样不会停止运行。
    

你可能感兴趣的:(linux,docker,架构)