Docker部署MySQL

11/19/2021 mysqldocker部署

参考文档:

https://hub.docker.com/_/mysql?tab=description (opens new window)

docker run -e MYSQL_ROOT_PASSWORD=xpt@918 --restart=always -e TZ=Asia/Shanghai -v /root/datas/mysql/mysqlb/data:/var/lib/mysql -d -p 3307:3306 --name mymysql mysql:8.0.25

docker run :创建一个新的容器并运行一个命令

  • -e :设置环境变量
  • -d:后台运行容器
  • -p:指定端口映射,格式:宿主端口:容器端口
  • --name:为容器指定一个名称
  • --restart=always:docker重启时容器也跟着重启
  • -v:映射本地和docker容器文件夹

查看容器

docker ps -a
  • -a:显示所有的容器,包括未运行的,不加就只有运行中的

进入容器

docker exec -it mymysql /bin/bash
  • -it :开启一个交互模式的终端
  • mymysql:容器的别名,根据实际修改,也可以是容器id
  • /bin/bash:使用/bin/bash来解释执行

当看到终端前变成了root@d05045da346d,也就是出现了容器id时候,就表示成功进入了

检查一下,是否能查看MySQL版本

mysql -V

现在是MySQL,首先我们来进入MySQL管理

mysql -u root -p
  • 密码就是上面创建容器时候设置的123456,根据实际情况修改

查看用户及对应的加密方式

select host,user,plugin from mysql.user;

执行结果

mysql> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)

mysql8.0 引入了新特性 caching_sha2_password,这种密码加密方式客户端不支持,客户端支持的是mysql_native_password这种加密方式,所以再修改一下

alter user "root" identified with mysql_native_password by 'xpt@918';

这里密码(xpt@918)是可以随便设定的,注意不能用下面这种方式,直接更新,因为目前root存在的密码还是 caching_sha2_password加密的,下次登录会失败,所以我们采取上面的方式

update mysql.user set `plugin`="mysql_native_password" where `user`="root";

下面我们就不直接操作了,可以用数据库管理工具,比如Navicat

Last Updated: 11/24/2021, 4:49:54 PM