docker pull mysql:8.0.18
如果是此句, 则是拉取最新版本 $ docker pull mysql:latest
查看对应IMAGE ID 为 ed1ffcb5eff3
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.18 ed1ffcb5eff3 6 months ago 456MB
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 ed1ffcb5eff3
进入 CONTAINER ID 然后加载 bash
docker exec -it mysql-test bash
或者一步到位
docker exec -it mysql-test mysql -uroot -p123456
设置远程登录
- 登录mysql账号
- 修改root用户登录地址
- 修改root用户密码加密方式
mysql -uroot -p123456
use mysql;
-- 查询当前数据库相关信息
select host,user,authentication_string,plugin from user;
-- 若不存在 `root@%` 将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
UPDATE USER SET host = '%' WHERE user = 'root';
-- 并刷新权限
flush privileges;
--将用户root密码设置为永不过期
mysql> alter user 'root'@'%' identified by '123456' password expire never;
Query OK, 0 rows affected (0.01 sec)
--将root用户密码加密方式改为mysql_native_password ,上面查到root用户密码的加密方式为caching_sha2_password
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.00 sec)
--刷新权限,在别的机器上即可登录
mysql> flush privileges;
-- 可以添加远程登录用户
CREATE USER 'xiaobudian'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'xiaobudian'@'%';
现在可以任意客户端尝试登录
mysql -uroot -p123456 -h117.xxx.xx.xx
117.xxx.xx.xx 为对应你的 IP 地址
参考
(1条消息)数据库篇丨MySQL8.0 设置远程访问权限(最佳实践)!!!_「IT大飞说」的博客-CSDN博客_mysql8开启远程连接
https://blog.csdn.net/xinpengfei521/article/details/80403965
Docker 安装 MySQL | 菜鸟教程
https://www.runoob.com/docker/docker-install-mysql.html
网友评论