美文网首页Docker容器
Docker 下的 MySQL 管理及连接

Docker 下的 MySQL 管理及连接

作者: 若非的日志 | 来源:发表于2019-03-28 11:50 被阅读21次

本文记录了 Docker 下安装 MySQL 以及容器外部连接管理 MySQL 的方法。

运行一个 MySQL 容器

参照 Docker Hub 上的 MySQL 镜像使用说明:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql

通过 docker ps 查看容器是否启动成功:

~ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
7036ba2e08b7        mysql               "docker-entrypoint.s…"   9 minutes ago       Up 9 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

授权

首先进入到容器内部:

~ docker exec -it mysql bash

远程授权:

mysql> grant all on *.* to 'root'@'%'

修改加密规则:

mysql> alter user 'root'@'localhost' identified by 'password' password expire never;

更新 root 用户密码:

mysql> alter user 'root'@'%' identified with mysql_native_password 'my_secret_pw';  # 密码为 my_secret_pw

刷新权限:

mysql> flush privileges;

最后退出容器,测试容器外部连接。连接之前查看 docker 的 ip

~ ip addr
# 找到 docker0
docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:e1:46:e0:be brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
...

安装 mysql-client 之后就可以测试连接了:

~ mysql -h 172.17.0.1 -P 3306 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.15 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

相关文章

网友评论

    本文标题:Docker 下的 MySQL 管理及连接

    本文链接:https://www.haomeiwen.com/subject/zwxqbqtx.html