• <table id="caya2"></table>
  • docker部署mysql实现远程访问

    docker部署mysql实现远程访问

    青杉 417 2021-11-16

    查看Docker MySQL文档

    docker 下载
    MySQL文档地址:
    https://hub.docker.com/_/mysql/

    第一步,拉取MySQL镜像

    docker pull mysql # 拉取最新版mysql镜像
    

    之后docker会自动拉取(下载)MySQL镜像。

    拉取成功后我们查看一下:

    docker images
    

    第二步,创建并启动一个MySQL容器

    输入以下命令:

    docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
    
    • –name:给新创建的容器命名,此处命名为mysqlserver
    • -e:配置信息,此处配置mysql的root用户的登陆密码
    • -p:端口映射,表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为3306(第一个)
    • -d:成功启动容器后输出容器的完整ID
    • 最后一个mysql指的是mysql镜像名字

    如果要建立目录映射

    duso docker run -p 3306:3306 --name mysql \
    -v /usr/local/docker/mysql/conf:/etc/mysql \
    -v /usr/local/docker/mysql/logs:/var/log/mysql \
    -v /usr/local/docker/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql
    
    • -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录

    到这里我们查看容器运行状态:

    docker ps
    

    可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等

    第三步,测试连接MySQL

    • 1、命令连接
    docker exec -it  mysqlserver /bin/bash
    

    或者

    docker exec -it mysqlserver bash
    

    docker exec:在运行的容器中执行命令
    语法

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    

    OPTIONS说明:

    • -i :即使没有附加也保持STDIN 打开
    • -t :分配一个伪终端
    • -d :分离模式: 在后台运行

    进入mysql

    mysql -h localhost -u root -p
    

    使用navicat远程连接

    若访问不成功请查看是否开启远程连接

    mysql> use mysql;
    mysql> select user,host from user;
    
    hostuser
    %root
    localhostmysql.infoschema
    localhostmysql.session
    localhostmysql.sys
    localhostroot

    如果host没有% 就需要执行

    8.0版本

    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ,'password'改成你的密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 ,'password'是你的密码
    
    grant all privileges  on *.* to root@'%' identified by "password";
    
    • password 为你新设置的密码

    刷新权限

    FLUSH PRIVILEGES; 
    

    如果连接状态为 2003
    可能造成出现的原因:

    • 网络不通畅
    • mysql 服务未启动
    • 防火墙未开放端口

    # mysql # docker


    人成免费电影
  • <table id="caya2"></table>