Docker安装MySQL,MySQL挂载本地目录

Docker安装MySQL,MySQL挂载本地目录

Docker安装

1、删除Ubuntu中原来的Docker

1.1 全部删除

1.常归删除操作
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
 
2. 删除docker其他没有没有卸载
dpkg -l | grep docker
dpkg -l |grep ^rc|awk{ print $2}|sudo xargs dpkg -P # 删除无用的相关的配置文件
 
3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)
sudo apt-get autoremove docker-ce-*
 
4.删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
 
5.确定docker卸载完毕
docker --version

1.2 快速删除

sudo apt-get purge docker-ce docker-ce-cli containerd.io
 
sudo rm -rf /var/lib/docker

2、安装Docker

2.1 更新、安装依赖

先更新一下
sudo apt-get update
 
安装相应的依赖
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

2.2 添加Docker的官方GPG密匙

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

2.3 设置一个稳定的仓库

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

2.4 再次更新apt

sudo apt-get update

2.5 安装Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io

2.6 测试是否安装成功

sudo docker run hello-world

《Docker安装MySQL,MySQL挂载本地目录》

#查看所有容器
docker ps -a
#删掉刚才那个容器
docker rm 2a522

《Docker安装MySQL,MySQL挂载本地目录》

MySQL安装

1、拉取最新的MYSQL镜像

docker pull mysql:5.7

2、镜像查看与删除

#查看镜像
docker images
#删除镜像
docker rmi hello-world

《Docker安装MySQL,MySQL挂载本地目录》

3、创建MySQL容器

3.1 挂载本地目录

  • 创建本地MySQL映射目录
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
  • 在/root/mysql/conf中创建 *.cnf 文件
cd /root/mysql/conf
touch my.cnf
  • 创建容器,将数据,日志,配置文件映射到本机
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql

3.2 挂载备份目录

docker run -p 3306:3306 --name mysql01 \
-v /root/mysql_data/conf:/etc/mysql/conf.d \
-v /root/mysql_data/data:/var/lib/mysql \
-v /root/mysql_data/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

3.3 MySQL设置远程访问

  • 进入容器

    docker exec -it mysql01 /bin/bash
    
  • 进入MySQL

    mysql -uroot -p123456
    
  • 若报错

    若报错Access denied for user 'root'@'localhost' (using password: YES)
    则进行以下步骤:
    在my.cnf文件的[mysqld]这个条目下加入skip-grant-tables保存退出后重启mysql。这句话的意思是跳过验证阶段,在数据库容器中输入mysql -u root -p后,在输入密码的时候可以直接敲回车进入数据库操作界面。
    在终端输入doker exec -it mysql /bin/bash进入到mysql容器的交互命令端。
    在mysql容器交互命令端输入mysql -u root -p后,在输入密码的时候直接敲回车,进入数据库命令交互端。
    进入数据库命令交互端后,依次进行以下操作。
    第一步,选择名为mysql的数据库
    mysql> use mysql;
    
    第二步,为root用户设置密码
    mysql> update user set password=password("新密码") where user="root";   #mysql5.7版之前
    mysql> update mysql.user set authentication_string=password('新密码') where user='root';  #mysql5.7版及之后
    
    第三步,刷新数据库
    mysql> flush privileges;
    
    第四步,退出数据库
    mysql> quit;
    将my.cnf文件的[mysqld]这个条目下的skip-grant-tables删除,保存退出后重启mysql
    再用数据库连接工具进行测试,发现可以成功连接
    
  • 若未报错

    #设置mysql远程权限
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    #刷新权限
    flush privileges;
    
  • 测试远程访问
    《Docker安装MySQL,MySQL挂载本地目录》

补充:局域网下Ubuntu间传输文件

1、主从机信息

本机:

​ name:zzk

​ ip:192.168.1.110

从机:

​ name:slave8

​ ip:192.168.1.10

(ip可以通过ifconfig命令查看)

eg:主机拷贝从机的一个文件夹

2、传输文件

scp -r root@192.168.1.10:/usr/local/zyh/data/mysql_data_back /root/

scp:拷贝文件命令

-r:表示拷贝的是整个文件夹,如果只拷贝一个文件,则不用-r

root@@192.168.1.10 从机用户名@从机ip 务必先查看文件的权限

/usr/local/zyh/data 要拷贝的文件夹在从机中的路径

/usr/local/zzk 下载到本机的本地的路径

    原文作者:MuZhi233
    原文地址: https://blog.csdn.net/MuZhi233/article/details/121354752
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞