1.申请云端服务器
每个账户有三个月的免费试用
我的服务器选择是centos7 ,别选成win了。
2.创建实例
创建实例的步骤,阿里云有文档 介绍
大致就是 左边点实例 -》 顶部选你申请服务器时的地区-》下面就出现一条实例-》点更多 -》要重置实例密码 -》同一列下面安全组配置
要重置实例密码
同一列下面安全组配置
开放端口
再点侧边栏实例 ,复制 IP地址下的 公网IP xxx.xxx.xxx.xxx
3.Xshell 登录服务器
点连接 输用户名 密码 ,这是你重置实例密码时的用户名密码
用户名填 root
登录成功
4.用docker 创建数据库
docker安装不赘述了。
4.1 拉取指定版本的镜像
docker pull mysql:5.7.37
4.2 检查是否存在 MySQL 镜像
docker images
4.3 运行MySQL镜像并设置密码
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.37
上面是一台机器的运行
如果想要实现本地软件连接docker里面的数据库,那么你可以通过
-p <本机端口:数据库端口>的方式来映射
需要 -p 参数映射端口,不映射到本机, 外网不能访问。
4.4 外部连接
docker run -p <本机端口:数据库端口> --name <容器名称> -e MYSQL_ROOT_PASSWORD=<数据库密码> -d mysql:<版本号>
docker run -p 3306:3306 --name java -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.37
4.5 查看数据库是否创建完成
# 查看mysql是否执行成功
docker ps
#进入运行的容器
docker exec -it <容器 ID> bash
#进入 MySQL 服务
mysql -u root -p
到此 通过服务器 创建完数据库,并连接上数据库了
下面就是外部连接数据库
5.navicat连接
测试连接,成功就可以了
注意:
网上有通过 SSH+常规登录navicat,不建议这么做。这么做连上的本质是 通过SSH登录服务器,在服务器中登录数据库。并不是直接通过公网IP登录数据库。
而navicat无法直接通过公网ip连接上数据库
解决办法
执行以下命令再连接试下
iptables -t nat -I PREROUTING -p tcp --dport 3306 -m state --state NEW -j ACCEPT
安全组放通下 3306端口 再试下。
命令依次执行后,再试下。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
重点就是开放端口+重启防火墙
开放的端口是你映射本地的端口
成功连接 over