使用Docker安装MySQL数据库并设置自动自动

1. 安装好Docker ( 教程请看此分类中上一篇文章 )

2. 通过Docker拉取MySQL镜像, 不加版本号的话, 默认是最新版 ( 8.0 ) 

    docker pull mysql 

3. 使用命令查看是否拉取成功:

      docker images

    成功的话, 会显示MySQL镜像, 如下图:


docker images 显示镜像列表

    4. 使用 3306 端口启动 MySQL 并暴露此端口; 并设置自动启动

            --restart=always  设置自动启动

            --name mysql 设置容器名称

            MYSQL_ROOT_PASSWORD=xxx xxx表示root密码

            -d mysql 要启动的镜像名称

               docker run -p 3306:3306 --restart=always --name mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql 

    5. 此时, 还无法通过外部连接MySQL, 因为默认只能通过本机登录, 我们要登入docker中的MySQL容器, 设置授权任意地点登录, 并且由于8.0开始, 密码加密方式与旧版不同, 为了兼容旧版登录, 要一并更改密码加密方式; 另外, 我们要根据项目需要, 添加用于开发/生产的用户;

        docker exec -it mysql /bin/bash  # -it xxx  xxx表示你刚刚设置的容器名称


登录成功后, root@后面的主机名会变成容器id

    登录MySQL并输入密码

    mysql -uroot -p

    

登入成功

    开始更改root密码加密方式, 并且设置外部登录:

    由于默认只有 root@localhost 用户, 我们需要先添加 root@% 用户, %表示任意地点登录; 其中 xxx 替换成你要设置的密码

    ( docker 中的MySQL8.0 默认携带了root@%用户, 我们只需要修改密码加密方式即可;

    ALTER USER 'root'@'%' IDENTIFIED BY 'xxx' PASSWORD EXPIRE NEVER; 


    设置密码为永不过期; 其中 xxx 替换为你要设置的密码;

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';


修改密码并指定加密规则为 mysql_native_password  , xxx替换为你要设置的密码

    flush privileges;


刷新权限后, 刚才的更改才会生效

    添加用户; 修改该用户的加密方式; 为用户设置权限; 我这里以test为例, 并设置所有权限, 实际项目中, 只设置需要用到的权限即可; 最后别忘了刷新权限;

    create user 'test'@'%' identified by 'xxx';

    alter user 'test'@'%' identified by 'xxx' password expire never;

    alter user 'test'@'%' identified with mysql_native_password by 'xxx';

    grant all on *.* to 'test'@'%' ;

    flush privileges;

    使用 Navicat 等数据库连接软件进行测试; 别忘了开放3306端口哦 :)

你可能感兴趣的:(使用Docker安装MySQL数据库并设置自动自动)