阿里云ECS云服务器基于docker安装mysql并且远程连接

本次介绍如何在阿里云ECS云服务器中使用docker安装最新mysql 8 并且进行远程访问。

前言,安装docker:阿里云ECS云服务器安装docker并配置阿里云镜像仓库

1 拉取mysql镜像

该命令直接拉取最新mysql镜像。

docker pull mysql

如果想要指定版本,那么在官网可以找到mysql镜像所有版本:https://hub.docker.com/_/centos,latest就表示最新版本,使用“:”分隔,在后面加上版本号即可,比如:

docker pull mysql:5.7

在这里插入图片描述

2 查看镜像

docker images

在这里插入图片描述

3 创建mysql容器实例并运行

随后创建一个mysql容器实例,即可开始使用:

docker run -it --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

-it :分配一个伪tty,一般与 -i 连用。可以省去。
–name mymysql :设置当前mysql容器实例名为“mymysql” ,可以自己指定。
-e MYSQL_ROOT_PASSWORD=123456 :设置当前mysql容器实例密码为“123456” ,可以自己指定。
-p 3306:3306 :设置当前mysql容器实例端口映射,前一个是远程访问时的端口,后一个是默认端口。
-d mysql : 表示以后台形式mysql镜像标签

4 查看容器实例

查看正在运行的容器实例

 docker ps -a

在这里插入图片描述

到此,实际上一个mysql容器实例就创建好了并且运行起来了,相对于传统的安装mysql,是不是很简单啊?
这个mysql实例已经被保存下来了,后续直接使用 docker start CONTAINER_ID 即可启动, docker restart CONTAINER_ID即可重启, docker stop CONTAINER_ID。

6 进入mysql容器并登陆

如何进入mysql容器(这一步不是必须要做的)?

docker exec -it 013392c286a4 bash

这里的“013392c286a4 ”,表示当前容器id,可通过 docker ps -a 命令查看。
此时已经进入了容器,随后可以进行登陆。

mysql -uroot -p

随后再输入密码,即可进入mysql服务中!

5 远程连接navicat

第四步完成之后即可开始连接。注意,远程连接之前需要在安全组开放访问的端口,在上一篇文章已经讲了。这里的端口是前一个指映射的端口!
随后直接使用navicat连接即可,这里的ip使用我们的服务器远程ip,端口使用映射的端口,用户名root(也可以自己创建用户),密码就是启动实例是指定的密码!
在这里插入图片描述
至于代码连接,则同样非常简单,普通设置都是一样的!

5.1 mysql 8 远程连接

mysql 8以上默认使用的是caching_sha2_password身份验证机制,之前用的是mysql_native_password,所以远程连接可能会抛出1521、2059 等错误(大多是因为navicat不是最新版,而是老的盗版,最新版支持mysql 8加密方式),需要修改用户的密码加密校验方式!
进入mysql容器并登陆mysql,执行:

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

这里的password是自己指定的密码,‘root’@’%'表示任何ip都可以连接。随后刷新,即可正常远程连接!

flush privileges;

至于远程访问权限,默认都是授予的,因此不必设置。

7 修改时区

mysql默认存储时间类型的数据的时间值与系统时间总是不对应,相差8个小时。如果使用简单的设置,那么docker中每一次启动mysql实例,设置信息还是会被还原,因此我们这里需要修改配置文件,达到永久设置系统时区的功能!
首先进入mysql容器(不需要登陆),第6点已经讲了。随后进入my.cnf的目录:

cd /etc/mysql

添加一行:default-time_zone = ‘+8:00’ 配置到my.cnf末尾即可实现永久更改。

echo "default-time-zone = '+08:00'">>my.cnf

在代码的url中也可以添加serverTimezone=Asia/Shanghai参数来临时设置时区。


版权声明:本文为weixin_43767015原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。