MySQL 是一个开放源码的关系数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的大中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
访问DokcerHub中的MySQL镜像库地址:https://hub.docker.com/_/mysql/tags 可以通过 Sort by 查看其他版本的MySQL,查看最新版本MySQL镜像(mysql:latest
):
https://hub.docker.com/_/mysql/tags?page=1&name=latest
此外,我们还可以用
docker search mysql
命令来查看可用版本:
docker pull mysql:latest
注意:tag是可选的,tag表示标签,多为软件的版本,默认是latest版本(最新版)
使用以下命令来查看mysql镜像是否成功拉取到本地:
docker images
docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql
参数说明:
docker ps
1、进入MySQL容器:
docker exec -it mysql-test /bin/bash
2、进入MySQL:
mysql -uroot -p
Enter password:root123456
注意:默认应该就是这个,不切换也行,保险起见还是切换一下
use mysql;
GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
参数说明:
FLUSH PRIVILEGES;
这是因为MySQL8之前密码加密规则为mysql_native_password,而 MySQL8 之后的加密规则为caching_sha2_password,也就是说,如果要用Navicat连接MySQL,其实只需要将密码规则改回 mysql_native_password 即可;
docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456
use mysql;
IDENTIFIED BY ‘root123456’:连接时输入密码,密码为root123456
ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';
FLUSH PRIVILEGES;