ITPub博客

首页 > 数据库 > > Azure 篇 - SQL Database

Azure 篇 - SQL Database

作者:浪花小雨滴 时间:2020-05-14 15:01:05 0 删除 编辑

内容部分更新: @Tim Chen :”创建Azure VM 时可以选择自带SQL Server的镜像文件,不需要自己单独安装 “。

也感谢 @Ling Anderson ,这锅得改名部背,哈哈哈。VM里的叫 SQL Server。

这台Azure VM是我在很早以前开的一台机器,当时也没有安装SQL 的需求,所以当时就没有选择带 SQL 镜像的VM,也谢谢老师提醒,同时在Azure上也可以创建带有VS的VM :)。


最近在使用 SQL Database, Visual Studio 已就绪,就差一个数据库了,然而目前我还不想在本机安装 SQL Database, 于是我就想到了 Azure for SQL Database, 这样艰巨任务当然要交给 Azure 去完成了。

前文:

1.下面我会介绍如何在Azure上创建SQL Database, 在Azure页面上进行简单查询等操作。

2.另外也会在本地安装SSMS,连接到Azure上已经创建好的SQL Database,进行简单查询等操作。

3.在Visual Studio SQL Server资源管理器连接Azure上已经创建好的SQL Database,进行简单查询等操作。

4.另外我们也会使用Visual Studio 自带的精简版SQL Database,这个在安装Visual Studio 时会自动安装。

5.在Azure VM(Windows 10)里安装完整版的SQL Database,在VM 里安装SSMS连接到SQL Database,另外我们也会用本地的SSMS连接到VM里的SQL Database,进行简单查询等操作。

注:现在SQL Database可以跨平台使用,所以Linux里同样可以安装SQL Database。

首先,打开浏览器 输入 portal.azure.com,这个是国际版Azure Portal,这样我们会转到 Azure 的 Portal 页面(对于没有Azure的同学可以去 Azure 中国官网花1元人民币,可以免费试用。中国版Azure输入 portal.azure.cn

1远人民币试用:

Azure 试用申请表 | Azure​


点击左边的新建,之后我们会在 Popular 里看见列出的 SQL Database, 或者直接在搜索栏里直接搜索 SQL Database,如图

点击之后,会弹出页面让我们填写数据库的一些基本信息,如上图

Database name: 数据库的名字,选择一个合适的名字填写在这里

Subscription: 选择你的Azure订阅

Resource group: 资源组的名字

Select source: 数据库的源,这里可以选择空数据,也可以选择拥有样例的数据库,点击下拉框即可选择,这里推荐选择拥有样例数据的数据库,因此选择第二项

Server:服务,SQL Database 运行在上面的服务里,需要填写服务名字,登录的账户和密码,也是我们登录数据库的账户和密码,我们下面会用到

Pricing tier:选择数据大小,规格越高的数据库同样也越贵

我们可以根据自己的需求选择合适的规格,在这里我们可以看见Basic属于基本类型,每个月38块,还是很便宜的,如果创建之后不满足现在的需求,在Azure里提供自动扩容,非常的方便。

扩容,如果目前的SQL 大小以及其规格无法满足现在的需求,可以选择扩容,非常简单与方便

SQL Database运行在Azure,这张图很好解释了为什么要创建资源组,还有服务,我们创建的SQL 运行在 SQL Server上,而我们的SQL Server包含在我们的资源组里,我们的资源组属于我们的Azure订阅

最后点击下方的创建Button,等待一两分钟,数据库便会在Azure创建完成,并且处于Online状态

正在部署SQL Database

部署完成

这个是我已经创建好的 SQL DATABASE 数据库,点开之后,我们会看见一些关于数据库的基本信息

到了这步,我们基本可以在Visual Studio 或者 SSMS 连接到 Azure 上的数据库,对其进行操作,也可以直接在Azure上直接对SQL Database 进行简单的增删改查等操作,点击左侧面板 Data explorer

点击上方的Login, 选择 SQL server authentication,在Login处输入我们上面Server处填写的的用户名,Password处输入密码,最后点击OK,即可登录

我们对其一张Sample 表进行简单的查询,如下图

现在我们选择SSMS登录Azure上的数据库

首先,在Local机器上安装 SSMS

docs.microsoft.com/en-u

点击红色框内的链接即可进行下载,英文版大概802M,中文版大概829M,根据自己的要求选择语言版本,之后安装

安装之后,我们找到Microsoft SQL Server Management Studio,点击打开

Server type:选择 Database Engine

Server name:输入服务的名字,这个我们可以到Azure上已经创建好的SQL Database概览处找到

Login:服务名

Password:密码

点击Connect

注:如果点击Connect 时出现Error,显示无法连接到远端的SQL时,转到我们的Azure SQL Database里,点击防火墙设置,把当前本地的IP地址添加进去即可,这也是为安全着想

SSMS连接成功页面如下,现在我们可以在本地的SSMS上对Azure上的SQL Database进行基本操作,比如简单的查询操作

现在我们选择Visual Studio连接,在VS上方的视图里选择服务器资源管理器,然后右键数据连接-添加连接

在弹出的窗口中输入基本信息,点击测试连接,测试成功之后即可使用

简单的查询

以上基本上可以满足我们的需求使用了,但是,作为程序猿,不写几行代码来连接一下数据库怎么对得起这个称号呢:)

以上基本上可以满足我们的需求使用了,但是,作为程序猿,不写几行代码来连接一下数据库怎么对得起这个称号呢:)


现在我们到Visual Studio里,在创建的项目里选择C#的Console Application

这里有两种方式连接数据库,一种是直接写C#代码,另一种直接写在配置文件里,我们先看看配置文件怎么写

我们重新回到Azure Portal,进入我们已经创建好的SQL Database页面,在左侧SETTINGS里找到Connnection strings, 点击之后我们看到如下

这里看到可以使用ADO.NET, JDBC, ODBC, PHP 等连接方式,由于我们使用C#语言,所以我们选择ADO.NET, 然后我们点击复制下面的string,保存一下

回到VS的解决方案, 找到app.config, 打开


在<configuration></configuration>里添加

<connectionStrings>
<add name="ConStr" connectionString="Server=tcp:courage.database.windows.net,1433;Initial Catalog=Courage;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" />
</connectionStrings>

注意修改里面ID的your_username, Password 的your_password

注:写名字和密码时去掉{}


然后我们可以新建一个SQLStr.cs类封装获取配置文件,获取配置文件书写如下


var config = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
return new SqlConnection(config);


注意引入命名空间


using System.Data.SqlClient;
using System.Configuration;


最后在Program.cs类调用这个类


     static void Main(string[] args)
       {
           var connection = SQLStr.Connection();
           try
           {
               connection.Open();
               string str = "SELECT * FROM SalesLT.Address";
               SqlCommand sqlCommand = new SqlCommand(str, connection);
               SqlDataReader result = sqlCommand.ExecuteReader();
               while (result.Read())
               {
                   Console.WriteLine(String.Format("{0},{1}", result[0], result[1]));
               }
           }
           catch (SqlException e)
           {
               Console.WriteLine(e.ToString());
           }
           finally
           {
               connection.Close();
           }     
       }


以上为配置文件连接


我们再来看看C#代码

同样创建一个SQLStr.cs的类,然后书写


         var str = new SqlConnectionStringBuilder();
           str.DataSource = "courage.database.windows.net";
           str.UserID = "your_username";
           str.Password = "your_password";
           str.InitialCatalog = "Courage";
           var sqlConnection = new SqlConnection();
           return new SqlConnection(str.ConnectionString);


注意修改里面ID的your_username, Password 的your_password

最后在Program.cs类里调用这个类


以上为两种连接方式的写法


可能我们也会遇到这样的问题,虽然Azuer上的 SQL Database 可以免除我们在Local 机器上安装的步骤,节省空间,但是需要实时网络连接,我们总会有这样或者那样的原因处于无网络情况,我们同样不想在Local机器上安装SQL Database,那么问题来了。好在微软的Visual Studio 团队早以考虑到我们会有这样的需求,所以把一个精简版的SQL Database内置在VS里,这样我们在安装Visual Studio时就会自动安装这个数据库,现在知道软爸爸的强大了吧!!!


回到 Visual Studio,在视图里点击SQL Server 对象资源管理器,我们会看到有两个localdb, 一个是MSSQLLocalDB(SQL Server - Version - DESKTOP - ) ,另一个是 ProjectsV13(SQL Server - Version - DESKTOP), 现在我们就可以进行简单的查询等操作了

如果在SQL Server 对象资源管理器里没有发现这两项,可以右键点击SQL Server ,点击添加SQL Server

现在我们已经把无论是VS自带的精简数据库还是Azure上的SQL Database都简单的了解了一下,那么如果真的实际需要完整的 SQL Database 该如何呢,这样就只能安装了,同样,不想在本地机器上安装 SQL Database我,在Azure上开一台Windows的虚拟机,这里我选择Windows 10 1709,Linux也可以,现在SQL Database支持跨平台,之后在VM里安装完整版的SQL Database,进行远程连接操作。下面我们看看具体的操作。


现在我们已经在Azure上有一台配置好的 Windows 10 Pro 1709,然后下载完整版的SQL Database,并且安装

安装完毕之后在VM上测试一下连接,同样需要下载SSMS,然后输入一些基本信息,最后连接,测试成功之后,我们在到我们的本地机器上使用SSMS进行操作,这样可以保证远端不出问题的情况下本地也不会出现问题

Azure 上 Windows 10 1709 如下

安装完整版的SQL Database,开始菜单中我们可以看到如下,这是在Azure上VM运行的完整版SQL Database

如果运行完整版出现问题时,请检查一下SQL服务是否在运行,如果没有运行可以手动开启,同样也可以设置开机自动开启,在服务里找打并开启即可,我们同样也在VM里安装SSMS,连接,确保测试成功之后我们再回到本地进行操作

我们想要在本地进行远程连接数据库前需要开启一些端口,确保能够连接成功,因此需要在Azure上对VM的网络端口进行一些设置

回到Azure,点击VM,在SETTINGS点击Networking,我们会在右面的面板看见进站规则

点击添加,在Service选择 DNS(TCP),然后填写一个易识别的名字,点击下方的OK

创建之后修改Port ranges,一个是1433,另一个是57500,如下

注:一共创建两个端口,创建时不可修改端口值,创建之后可以修改

现在进入到VM里,打开控制面板(如果找不到可以打开 运行 输入 control panel),找到防火墙的高级设置,找到进站规则,右键新建,选择Port,下一步

选择TCP,并在Specific local ports 填写1433,下一步(57500 同理

选择Allow the connection ,下一步

全选,下一步

输入名字,下一步

Finish之后,我们就可以在本地机器远程连接到运行在VM里的完整版SQL Database了

这里需要注意的就是我们在SSMS里填写Server name时,需要填写VM的IP地址或者DNS名字,这个根据个人喜好,IP地址在VM关机之后再次开机会自动获取新的IP地址,所以对于需要经常连接最好还是设置DNS名字,用DNS名字来连接,这样会非常的方便,设置VM DNS name 到我们创建好的VM Overview里,找到DNS name,填写一下名字就可以了


到目前为止,我们已经把多种方式都写完了,希望对于学习的同学能有帮助作用

另外SQL Database同样可以安装到Linux里,我们同样可以在Azure里开一台Linxu的机器,然后在Linux 里安装SQL Database,最后连接。


最后一句:世界500强里90%都在使用 Azure ,微软大法好!!!

SQL Server 2017 官网:SQL Server 2017 on Windows and Linux

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3147529/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40093