为什么要使用ECS
我是软件工程专业的一名学生,因为专业需要,不可避免的在不同电脑上写程序,这样会面临一个问题,就是数据库的使用极其麻烦.主要有以下问题:
- 版本问题,举个例子来说,我自己电脑上的mysql版本是8,学校机房电脑的mysql版本是5,这意味着我得修
改代码中的mysql驱动.有了Maven之后方便多了,但没有大一大二没有学maven的时候真是一把辛酸泪.
- 数据库数据问题,每次写程序之后,数据库都会有变动,就需要写完之后把sql文件放到resource目录下,
每次换电脑写都得重新运行一下sql文件,但如果版本不一致的话有的表就建不上,很头疼.
- redis的配置还有以后要学的Docker...
- 有时候写好一个项目,想测试一下并发性能,或者想搭建一个个人博客,让别人访问.没有公网IP就很难办到.
软件工程中有这么一句话,没有什么问题是引入第三方解决不了的.仔细想想,jvm就像是第三方,写完程序直接送给jvm让它去运行,让它负责和不同的操作系统对接.操作系统也像是第三方,提供API给调用者,它负责和不同的硬件对接.沿袭这个思路,找一个第三方让它去完成数据库的功能,和数据库相关的丢给它就行.我的需求是一个可以24小时运行,并且只要接入互联网就能找到它的电脑.不就是云服务器吗.
ECS使用技巧
- 修改实例密码:购买服务器之后,点击控制台->点云服务器ECS->点击实例->点击管理->点击重置实例密码
- 开放端口:点击控制台->点云服务器ECS->点击左导航栏网络与安全下面的安全组->点击安全组操作列下面的配置规则->点击手动添加或者快速添加->添加要开放的端口
远程连接ECS - FinalShell(推荐)
- XShell(没用过)
- 下载宝塔: 需要开放8888端口,根据官网教程一步步来就行,进入宝塔面板之后安装软件就方便多了
下载JDK: - 宝塔应用商店搜索JDK
- 在终端输入yum install -y java-1.8.0-openjdk.x86_64
下载mysql: - 直接在宝塔面板下载(推荐)
- 在终端输入yum install mysql-community-server
- 修改mysql密码:
vi /etc/my.cnf 回车->在[mysqld]下面添加,skip-grant-tables ->service mysqld restart
-> mysql -uroot 回车 -> use mysql -> ALTER USER 'root'@'localhost' IDENTIFID BY
'新密码' -> flush privileges -> exit -> 进入第一步,把添加的skip-grant-tables删除.-> service mysqld restart 即可.
本地Navicat连接远程mysql: 需要先关闭防火墙,再修改mysql(数据库管理系统)中的mysql(数据库名)中的user(表名)的host(字段名)
- 关闭防火墙(该操作有风险,使用需谨慎):
a.systemctl status firewalld.service查看防火墙的状态
b.systemctl start firewalld.service启动防火墙
c.systemctl stop firewalld.service关闭防火墙 修改host:
a.查看不同的USER表中User(字段)对应的host %表示所有ip均可访问,localhost表示本机(这里是指ECS)可访问-
登录mysql, use mysql; select user,host from user; user host peaky % mysql.infoschema localhost mysql.session localhost mysql.sys localhost root localhost 添加用户并设置host为%(推荐)或者设置root的host为%(不推荐)
/.添加用户并设置host为%
在mysql8版本之前:可以一条语句搞定:创建用户、设置密码并且赋权:grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option; 其中grant all privileges 表示赋予用户所有权限, *.*第一个*表示匹配所有数据库,第二个*表示所有表, to'myuser'@'%',myuser 是用户名,'%'就是host了 identified by 'mypassword'中的'mypassword'就是密码了.
在mysql8版本之后需要先创建用户,再给用户赋值
-- 创建用户
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
-- 给用户分配权限
grant all privileges on . to 'myuser'@'%' ;
-- 单独授予某种权限的写法
GRANT SELECT ON 数据库名.表名 TO 'myuser'@'%';
-- 刷新权限,使操作生效
FLUSH PRIVILEGES
-
b.修改root用户的host
update user set host='%' where user='root';
3.在Navicat上连接远程mysql,
点击导航栏的连接 -> mysql -> 填入mysql的用户名和密码 -> 点击测试连接
如果不成功重启MySQL试试:service mysqld restart
- 关闭防火墙(该操作有风险,使用需谨慎):
使用体验
很方便,而且阿里云为学生用户提供了很多优惠,物超所值,以后的redis和docker也可以用,期待...