云服务器的摸索
最近也是斥巨资买了一个云服务器,准备玩一下云服务器,我之前并没有接触过云服务器,所以接下来的文章会是对我每天在云服务器上做的研究的一些总结和阐述。
初识(7.5-7.6)
SQLServer
第一次拥有一个属于自己的服务器,还真是有点激动啊。 因为我是开发C#为主的所以开购买服务器的时候选用了Windows操作系统。废话不多说,先安装个SQLServer数据库练练手。这里我用的是免费版的SQL2019-SSEI-Expr安装过程我就不讲解了,这种数据库安装流程网上太多了。
安装完成后我再里面建了一共数据库和两张表,表里放了一些数据。如下
数据库弄完之后,我觉得万事大吉,只差一个demo程序了,我立马写了一个简单的是数据库连接读取的代码
try
{
//server=localhost代表本机,如果是远程访问可填数据库的IP,端口号默认是1433可以不写
//database=数据库名;uid=用户名(默认是sa);pwd=密码(没有密码可以省略)
string SqlConnectionStatement = "server=***.**.***.**;database=db_WPFTest;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(SqlConnectionStatement);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from tb_Users";
cmd.Connection = conn;
SqlDataReader res = cmd.ExecuteReader();//执行SQL语句,并返回一个结果集
//将返回集保存到一个二位数组中,便于处理。
string[,] vs = new string[6, 2];
for (int i = 0; res.Read(); i++)
{
vs[i, 0] = res["UserID"].ToString();
vs[i, 1] = res["UserName"].ToString();
}
res.Close();//关闭SqlDataReader 对象,如果不关闭将不能执行其他SQL语句
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
因为某些原因,我这边把自己的公网IP用“ * ”带替了,这样一个简单的数据库连接Demo就完成了。
连接失败
结果发现数据库连接失败,我想是不是这个公网不通啊,我就Ping了一下这个IP地址,发现IP地址是能Ping通的,既然能IP是通的,接下去就是端口,是不是端口有问题呢,我这么想着。就用telnet来检测一下端口的连通性,结果还真是这个原因,因为我之前装的SQLServer都是默认占用1433来作为通讯端口的,是不是我想当然了呢,我上服务器检查了一下端口情况netstat -ano
(请大家手动忽略这个1433,因为我截图的时候已经开启了这个端口了)
既然这里没有1433这端口,那我们就得手动添加,首先要在数据库配置工具中设置
这里只是将这个端口和数据库绑定,但外界还是不能通过这个端口来访问服务器。所以后面我们还需要设置防火墙
在防火墙的入站规则中添加指定端口1433,这样我们就可以通过IP地址+端口的方式来访问服务器了,简单!!
Why
结果,还是失败了。为是啥啊,我不能理解,明明该配置的也配置了,该添加的也添加了,为什么还是不能通过这个端口来访问服务器呢。因为在之前的工作里我也是这样做的,而且这样做之后就能通讯了,为什么现在不行了呢。想想现在和之前的区别。
一个是云服务器,一个是本地主机。这样结果就一目了然了。服务器额外的安全组。登录上阿里云的服务器管理界面
在这个管理中心也添加一条入站规则,网上教程很多,这里我就用几张截图简单的说明一下怎么操作
这样,我们就将入站规则配置好了,当你怀着满心欢喜的心情去验证你的程序时,你会发现,还是失败了。因为你还忘记了重要的一步,重启服务器。很多操作都需要重启服务器来进行配置,所以我的建议是在不知道要不要重启服务器的时候就重启一下,反正也用不了多少时间。重启之后,我们先使用telnet来测试一下端口,发现能够正常通讯了。然后我们再尝试一下我们的Demo程序。发现从数据库中获取了tb_Users的数据。
写在结尾
后面我会写一些数据库通讯的Demo和一些Web项目,也会使用服务器,如果在使用服务器的过程中遇到了那些比较复杂或者奇怪的问题,我会继续分享在我的博客上。天道酬勤,与君共勉!