ECS使用体验以及我自己的一些体会

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介: ECS学习使用体验、用MySql做客户端的数据库

简介

机械电子工程二年级学生,首先最初是想搭建自己的博客还有想在云端建立自己的云数据库,对sqlserver有了解,想着能不能也在云端也建立一个数据,然后了解到了阿里云的ECS服务器,刚好看到有活动可以免费体验就尝试看看。

阿里云的有很多教程(视频、图文),我最初就是在云服务器ECS的控制台的概览发现了【搭建云上博客】的图文教程,然后就跟着教程开始做。


一些问题与解决

1.起初第一遍的时候就在验证Apache服务是否安装成功的时候,输入公网IP没有反应,后来才发现ECS的端口没有开启。


2.第二次就是在安装MySQL数据库的时候,密码我设置的是123456789,然后WordPress就一直连接不上数据库,这个问题我找了很久,最后才发现MySQL数据的密码与wp-config.php中的password_here保存的密码不一样,才导致了连接不上。


3.安装MySQL数据库时会报错误:

Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed

后来经过我百度找到了原因:(这个问题也是困扰了我好久,数据库也重新装了)

报错的原因是MySql的GPG升级了,需要重新获取,使用以下命令即可:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

再执行:

yum install mysql-server

4.最重要的一点就是不要随便去修改wp-confing.php的文件,会导致WordPress博客访问不了。


5.在ECS安装了MySQL之后,我尝试想用C#写一个客户端去访问ECS服务器的MySQL,当我开始测试的时候,发现连接不上,我检查了数据库连接字符串并没有发现问题,后来我了解到SSH,我以为要先通过SSH来连接到ECS,然后再去访问MySQL数据库,然后我就去学习C#有关于SSH的知识,经过一段时间之后我成功连接到了ECS,也能后访问MySQL,但是我觉得这样也太麻烦了,后来我去提交了工单,问了技术,才知道原来不需要这么复杂,用SSH连接ECS用的是22端口,而我想要直接连接MySQL可以直接通过3306端口访问(恍然大悟),因为MySQL数据库是默认开启3306端口的。了解了这些之后我修改了C#代码,又加入了插入数据的功能,正当我以为正常的时候,发现插入中文的时候会乱码,又是一顿百度,才了解创建数据库是用的编码不对,建议是改成gb2312,到这里我才是差不多完成了这件事。

这里我建议遇到问题还是先问一下客服,不然真的会绕很大一个圈。


收获总结

如今社会是技术快速发展的社会,在除自己的专业外,要或多或少的掌握一些其他的知识技能,而且现在的互联网也非常发达,资源很多,自己的一个想法能够很快的得到实现,一些问题也能够很快的得到解答,我个人是非常喜欢拓展自己的一些技能的。

说回阿里云,首先我觉得阿里云这种可以免费体验云开发的一些实验和活动,很好的推进了大量在校大学生的兴趣和想法,并且得到实践。

在经过几天的学习,我了解到了很多新知识,当然我要学的也有很多,我希望在未来我依然可以通过阿里云来实现我自己的一些想法。


【客户端代码】用MySql做C#客户端的数据库

1.数据库创建

1.MySql创建oranges_plan数据库

create database oranges_plan;

2.创建oranges表

CREATE TABLE `oranges` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `password` varchar(255) DEFAULT NULL,
  `account_number` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `question` varchar(255) DEFAULT NULL,
  `answer` varchar(255) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312;

2.ECS安全组开放3306端口

C#客户端程序就是通过3306端口访问MySql数据库的

image.png

3.C#客户端程序编写

image.png

1.App.config

<?xmlversion="1.0"encoding="utf-8"?><configuration><startup><supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.6"/></startup><connectionStrings><addname="connString"connectionString="server=公网IP;User Id=root;password=密码;Database=oranges_plan;charset=gb2312"/></connectionStrings></configuration>

2.MysqlConnectServer.cs

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Configuration;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingDAL;
usingMySql.Data.MySqlClient;
namespacealiyunSqlconnectTest{
internalclassMysqlConnectServer    {
privatestaticreadonlystringconnString=ConfigurationManager.ConnectionStrings["connString"].ToString();
publicstaticDataSetGetDataSet(stringsql)
        {
MySqlConnectionconn=newMySqlConnection(connString);
MySqlCommandcmd=newMySqlCommand(sql, conn);
MySqlDataAdapterda=newMySqlDataAdapter(cmd);//创建数据适配器对象DataSetds=newDataSet();//创建一个内存数据集try            {
conn.Open();
da.Fill(ds);//使用数据适配器填充数据集returnds;
            }
catch (Exceptionex)
            {
//将错误信息写入日志...throwex;
            }
finally            {
conn.Close();
            }
        }
publicstaticDataSetGetdata()
        {
stringsql="select * from oranges";
returnGetDataSet(sql);
        }
    }
}

3.Form1.cs

usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingMySql.Data.MySqlClient;
usingRenci.SshNet;
usingstaticSystem.Windows.Forms.VisualStyles.VisualStyleElement;
usingDAL;
usingRenci.SshNet.Common;
usingSystem.IO;
usingSystem.Threading;
usingSystem.Reflection.Emit;
namespacealiyunSqlconnectTest{
publicpartialclassForm1 : Form    {
publicForm1()
        {
Control.CheckForIllegalCrossThreadCalls=false; //加载时 取消跨线程检查InitializeComponent();
        }
stringserver="8.130.33.238";
stringusername="root";
stringpassword="=T&ey]bVqt3V^$7x";
publicdelegatevoidGetSSHLog(stringlog);
publicstaticeventGetSSHLoggetSSHLog;
publicdelegatevoidStartThreadDelegate();
publicstaticStartThreadDelegatestd;
privatevoidForm1_Load(objectsender, EventArgse)
        {
//Form1.getSSHLog += SSHClass_getSSHLog;//dataGridView1.DataSource = MysqlConnectServer.Getdata().Tables[0];//timer1.Start();getdata();
        }
privatevoidbtn_ConnectMySql_Click(objectsender, EventArgse)
        {
stringconnectionSql="server=8.130.33.238;User Id=root;password=NewPassWord1.;Database=oranges_plan;charset=gb2312";
stringsql="INSERT INTO oranges (password) VALUE ('{0}')";
stringsql2=string.Format(sql, textBox3.Text);
MySqlConnectionmySqlConnection=newMySqlConnection(connectionSql);
mySqlConnection.Open();
MySqlCommandmySqlCommand=newMySqlCommand(sql2, mySqlConnection);
if (mySqlCommand.ExecuteNonQuery() >0)
            {
//MessageBox.Show("数据插入成功!!");            }
mySqlConnection.Close();
dataGridView1.DataSource=MysqlConnectServer.Getdata().Tables[0];
this.dataGridView1.FirstDisplayedScrollingRowIndex=this.dataGridView1.Rows.Count-1;
textBox3.Text="";
        }
//dpublicvoidKeepDataConnect()
        {
dataGridView1.DataSource=MysqlConnectServer.Getdata().Tables[0];
        }
privatevoidbutton2_Click(objectsender, EventArgse)
        {
if (bol)
            {
getdata();
            }
        }
//dprivatevoidForm1_FormClosing(objectsender, FormClosingEventArgse)
        {
        }
privateThreadth;
privateboolbol=true;
privatevoidgetdata()
        {
th=newThread(newThreadStart(StartData));
th.IsBackground=true;
th.Start();
        }
privatedelegatevoidInvokeHandler();
privatevoidStartData()
        {
try            {
while (true)
                {
if (this.IsHandleCreated)
                    {
//dataGridView1.BeginInvoke(new ThreadStart(delegate()//     {//         dataGridView1.DataSource = DBHelper.ExcuteDataTable(sql);//         data.dategirds(dataGridView1);//     }));BeginInvoke(newAction(() =>dataGridView1.DataSource=MysqlConnectServer.Getdata().Tables[0]));
this.dataGridView1.FirstDisplayedScrollingRowIndex=this.dataGridView1.Rows.Count-1;
                    }
Thread.Sleep(1000);
                }
            }
catch            {
return;
            }
        }
privatevoidbutton4_Click(objectsender, EventArgse)
        {
for (inti=0; i<10000; i++)
            {
DataGridViewRowdr=newDataGridViewRow();
dr.CreateCells(dataGridView1);
dr.Cells[0].Value=i.ToString();
//dataGridView1.Rows.Insert(i, dr);dataGridView1.Rows.Add(dr);
            }
        }
privatevoidbutton5_Click(objectsender, EventArgse)
        {
dataGridView1.Rows.Clear();
        }
    }
}



相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。
|
2天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
4天前
|
弹性计算
ECS使用体验
ECS使用体验
|
7天前
|
弹性计算 Java Linux
ECS使用体验
阿里云开发者社区里不光有着丰富的知识,还有着十分优秀的性能和非常优秀的服务!他的优点还很多,对于我来说他的优点,是可以花费很少的钱去学习,性价比高,里面的知识丰富,我很需要。 还有的就是,我使用阿里云,感觉非常省力,不需要花时间担心卡掉或死机的问题。
|
10天前
|
弹性计算 Java Linux
ECS使用体验的文章
ECS使用体验的文章
|
18天前
|
弹性计算 运维 Java
ECS使用体验
ECS使用初体验
|
6月前
|
弹性计算 监控 Linux
阿里云飞天计划ECS使用体验
两周的免费体验阿里云服务器不仅让我更深切地了解了云服务器这个概念,更让让我学习到了一些云服务器的知识也复习了一些快要忘记的Linux操作,受益很深。
590 0
|
8月前
|
弹性计算 安全 云计算
个人关于阿里云ECS镜像的使用体验分享
众所周知,阿里云ECS镜像被广泛应用于云计算领域,为亿万用户提供了快捷、高效的云端服务。在使用过程中,我不仅享受到了诸如高速、安全、免费等等优势,也遇到了一些问题。那么接下来本文就来简单的分享一下个人的体验分享,从吐槽、建议、鼓励三个方面简单谈一下个人对阿里云ECS镜像的使用感受和看法。
449 1
个人关于阿里云ECS镜像的使用体验分享
|
10月前
|
弹性计算 云计算 对象存储
阿里云ECS:高校学生实践与使用体验分享
我是一名计算机专业的大三大学生,在阿里云开发者社区了解到了"飞天加速计划·高校学生在家实践"活动。在参与活动期间,我专注于学习和使用阿里云的ECS服务,并分享了一些使用小技巧,如弹性IP和快照功能。我也遇到了数据传输和共享的问题,并通过阿里云的对象存储服务解决。通过这次活动,我深入了解了云计算和云服务,并与其他同学交流和合作,收获了实践经验和团队合作的重要性。展望未来,我将继续学习和实践云计算技术,为推动云计算的发展做出贡献。
615 2
|
11月前
|
存储 弹性计算 监控
阿里云ECS使用体验:高性能、灵活可扩展的云服务器
阿里云的ECS(Elastic Compute Service)是一款高性能、灵活可扩展的云服务器解决方案。该服务提供了强大的计算能力、丰富的存储选项和灵活的实例配置,使开发者能够轻松部署和管理应用。ECS具有弹性扩展和自动化功能,可以根据负载变化自动调整实例数量,确保高可用性并降低成本。此外,ECS拥有全球部署能力,可实现全球范围内的应用部署,并提供了高可靠性和安全性的硬件基础设施。综上所述,阿里云ECS是一款令人满意的云服务器选择,适用于各种规模的开发者和企业。
501 0