zoukankan      html  css  js  c++  java
  • docker部署mysql实现远程访问

    查看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;
    
    host user
    % root
    localhost mysql.infoschema
    localhost mysql.session
    localhost mysql.sys
    localhost root

    如果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 服务未启动
    • 防火墙未开放端口
  • 相关阅读:
    win10环境下 jdk8安装点击下一步没反应解决办法
    selenium 常见鼠标 键盘事件
    selenium 输入框有默认值,用键盘事件解决
    selenium 键盘事件
    selenium 鼠标事件
    sql length
    ecshop Uncaught transport.js/parseResult() error: can't parse to JSON 错误解决
    j2EE基础知识
    mybatis入门知识
    JVM入门
  • 原文地址:https://www.cnblogs.com/qs315/p/14671140.html
Copyright © 2011-2022 走看看