<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ritesh Agrawal</title>
    <description>The latest articles on DEV Community by Ritesh Agrawal (@agrawalritesh).</description>
    <link>https://dev.to/agrawalritesh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1030476%2F0f606745-f705-40e6-812e-6da8e4c9c700.jpg</url>
      <title>DEV Community: Ritesh Agrawal</title>
      <link>https://dev.to/agrawalritesh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agrawalritesh"/>
    <language>en</language>
    <item>
      <title>Introduction to ODBC and OLE DB for SQL Server</title>
      <dc:creator>Ritesh Agrawal</dc:creator>
      <pubDate>Mon, 23 Oct 2023 13:48:04 +0000</pubDate>
      <link>https://dev.to/agrawalritesh/introduction-to-odbc-and-ole-db-for-sql-server-ik6</link>
      <guid>https://dev.to/agrawalritesh/introduction-to-odbc-and-ole-db-for-sql-server-ik6</guid>
      <description>&lt;p&gt;ODBC (Open Database Connectivity) and OLE DB (Object Linking and Embedding Database) are two different data access technologies that provide a standardized way to connect and interact with databases, including Microsoft SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. ODBC (Open Database Connectivity):&lt;/strong&gt;&lt;br&gt;
    - ODBC is a standard API (Application Programming Interface) that allows applications to communicate with various database management systems (DBMS) using a common set of functions.&lt;br&gt;
    - It was originally developed by Microsoft and has since become a widely adopted industry standard for database connectivity.&lt;br&gt;
    - ODBC drivers provide a bridge between the application and the database server. These drivers translate the application's requests into a format that the database server can understand and vice versa.&lt;br&gt;
    - ODBC drivers are typically available for various database systems, including SQL Server, Oracle, MySQL, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. OLE DB (Object Linking and Embedding Database):&lt;/strong&gt;&lt;br&gt;
    - OLE DB is a Microsoft technology that provides a set of data access components and services for accessing various data sources, including databases, spreadsheets, and text files.&lt;br&gt;
    - It is a more generalized data access technology compared to ODBC, as it allows access to various types of data sources beyond relational databases.&lt;br&gt;
    - OLE DB providers are used to connect to different data sources, and there are OLE DB providers specifically designed for SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the context of SQL Server, Microsoft provides both ODBC and OLE DB drivers:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- ODBC driver for SQL Server:&lt;/strong&gt; This driver is used to connect to SQL Server using ODBC. It's commonly used in applications and services that require access to SQL Server databases. You can configure ODBC data sources to specify the connection details for SQL Server, and applications can use these data sources to connect to the database.&lt;br&gt;
&lt;strong&gt;- OLE DB provider for SQL Server:&lt;/strong&gt; This is used when you want to connect to SQL Server using the OLE DB technology. It allows access to SQL Server as well as other data sources. OLE DB providers for SQL Server provide a more generalized way to interact with SQL Server.&lt;/p&gt;




&lt;h2&gt;
  
  
  When to Choose ODBC or OLE DB for SQL Server?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Choose ODBC When:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need database independence and want to develop applications that can work with various database systems.&lt;/li&gt;
&lt;li&gt;Cross-platform compatibility is a priority, as ODBC drivers are available on multiple operating systems.&lt;/li&gt;
&lt;li&gt;You want to set up Data Source Names (DSNs) for flexible connection management.&lt;/li&gt;
&lt;li&gt;You are working in a heterogeneous environment with databases from different vendors.&lt;/li&gt;
&lt;li&gt;You prefer a straightforward and SQL-centric approach to database interactions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Choose OLE DB When:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are developing applications in a Windows-centric environment and performance is a critical factor.&lt;/li&gt;
&lt;li&gt;You need access to a wide variety of data sources, not just relational databases.&lt;/li&gt;
&lt;li&gt;You want to leverage Microsoft's OLE DB provider for SQL Server, which offers high efficiency and features tailored to SQL Server.&lt;/li&gt;
&lt;li&gt;You are focused on Windows-specific development and are not concerned about cross-platform compatibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both ODBC and OLE DB play significant roles in connecting applications to SQL Server and other data sources. Your choice between the two should be driven by your specific requirements, including platform considerations, database independence, data source diversity, and performance demands. Understanding the differences between ODBC and OLE DB will help you make an informed decision when developing applications that require database connectivity to SQL Server.&lt;/p&gt;

&lt;p&gt;In recent years, Microsoft has been promoting ODBC as the preferred data access technology for SQL Server, and it is well-supported in various programming languages and frameworks. OLE DB, on the other hand, has seen reduced support and usage in favor of ODBC and newer technologies like ADO.NET.&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>microsoft</category>
      <category>article</category>
    </item>
    <item>
      <title>The Unseen Forces Shaping Your Work-Life Balance</title>
      <dc:creator>Ritesh Agrawal</dc:creator>
      <pubDate>Thu, 31 Aug 2023 10:41:48 +0000</pubDate>
      <link>https://dev.to/agrawalritesh/the-unseen-forces-shaping-your-work-life-balance-1ihp</link>
      <guid>https://dev.to/agrawalritesh/the-unseen-forces-shaping-your-work-life-balance-1ihp</guid>
      <description>&lt;p&gt;In today's fast-paced world, achieving a harmonious work-life balance has become an elusive goal for many. While the visible demands of work and personal life are well-known, there exists a realm of hidden pressures that significantly impact this delicate equilibrium. These invisible pressures, often underestimated, can take a toll on mental and physical well-being, leading to burnout and diminished quality of life. In this article, we delve into these subtle but powerful influences that shape our work-life balance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Culture and Societal Norms: The Subtle Dictators&lt;/strong&gt;&lt;br&gt;
Culture and societal expectations wield a powerful influence over our choices. In some cultures, long hours at the office are equated with dedication and commitment, leading individuals to prioritize work over personal life. This societal norm can create an environment where taking time off is frowned upon and individuals feel guilty for doing so. Breaking free from these expectations requires a conscious effort to prioritize personal well-being without succumbing to these unseen pressures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Digital Leash: The Unending Connectivity&lt;/strong&gt;&lt;br&gt;
While technology has revolutionized the way we work, it has also blurred the boundaries between work and personal life. The constant influx of work-related emails, messages, and notifications can create an "always-on" mentality, making it challenging to disconnect during off-hours. This digital tether can lead to a feeling of obligation to be available around the clock, eroding the distinction between work time and personal time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Fear of Job Insecurity: The Silent Driver&lt;/strong&gt;&lt;br&gt;
In competitive job markets, the fear of job insecurity can drive individuals to overwork themselves. The desire to prove their indispensability often leads to longer work hours and a reluctance to take time off. This fear is often internalized, pushing individuals to ignore their own well-being in a bid to secure their position, inadvertently harming their work-life balance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Comparisons and Self-Expectations: The Hidden Yardstick&lt;/strong&gt;&lt;br&gt;
The human tendency to compare oneself with peers and colleagues can be detrimental to work-life balance. Seeing others seemingly excel at managing both work and personal commitments can create a sense of pressure to do the same. This self-imposed standard can lead to feelings of inadequacy and push individuals to strive for an unsustainable level of performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Remote Work Challenges: The Illusion of Flexibility&lt;/strong&gt;&lt;br&gt;
Remote work offers flexibility, but it also brings its own set of challenges. The physical proximity of work and living spaces can lead to a blurring of boundaries. This often results in individuals working longer hours, finding it difficult to switch off from work mode. The absence of a clear transition between the office and home can disrupt the equilibrium needed for a healthy work-life balance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Unrealistic Employer Expectations: The Silent Demands&lt;/strong&gt;&lt;br&gt;
Employers' expectations for immediate responses and high productivity can foster an "always-on" mentality. The pressure to perform at peak levels consistently, even outside regular working hours, can lead to burnout. Addressing this pressure requires open communication between employees and employers about expectations and the realistic boundaries needed to maintain well-being.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As we navigate the intricacies of work-life balance, it's crucial to acknowledge and address the invisible pressures that shape our choices and behaviors. Cultivating a healthy balance requires a conscious effort to recognize these pressures, set clear boundaries, and prioritize self-care. By challenging cultural norms, leveraging technology mindfully, and fostering open dialogues within workplaces, we can work towards a future where the invisible pressures that affect work-life balance are acknowledged and alleviated. Remember, achieving balance is not just about managing visible tasks, but also about mastering the art of navigating the unseen currents that shape our lives.&lt;/p&gt;

</description>
      <category>worklifebalance</category>
      <category>workplace</category>
      <category>lifestyle</category>
      <category>corporate</category>
    </item>
    <item>
      <title>How to create a beautiful README for your GitHub blogs</title>
      <dc:creator>Ritesh Agrawal</dc:creator>
      <pubDate>Sun, 13 Aug 2023 06:42:59 +0000</pubDate>
      <link>https://dev.to/agrawalritesh/how-to-create-a-beautiful-readme-for-your-github-blogs-52ng</link>
      <guid>https://dev.to/agrawalritesh/how-to-create-a-beautiful-readme-for-your-github-blogs-52ng</guid>
      <description>&lt;p&gt;Creating a beautiful README for your GitHub blog involves combining engaging content, images, formatting, and clear organization. Here's a step-by-step guide to help you create an attractive GitHub blog README:&lt;/p&gt;

&lt;p&gt;Banner Image: Choose or create a visually appealing banner image that represents your blog's theme. This image will be the first thing visitors see, so make it captivating and relevant.&lt;/p&gt;

&lt;p&gt;Introduction: Write a welcoming and concise introduction that sets the tone for your blog. Explain what your blog is about and why visitors should explore it.&lt;/p&gt;

&lt;p&gt;Table of Contents: Include a table of contents to help visitors navigate through your README. Use links to anchor sections and make it easy for readers to jump to specific content.&lt;/p&gt;

&lt;p&gt;Latest Articles: List your latest blog posts with titles, brief descriptions, and links to each post. This provides an immediate way for visitors to engage with your content.&lt;/p&gt;

&lt;p&gt;Categories: If you categorize your blog posts, create a section that highlights these categories and provides links to each category's content.&lt;/p&gt;

&lt;p&gt;Subscription Option: If you have a newsletter or a way for visitors to subscribe, highlight it here. Encourage readers to stay updated on your latest articles.&lt;/p&gt;

&lt;p&gt;About Me: Share a short and personable description of yourself. Include your background, interests, and what drives you to write.&lt;/p&gt;

&lt;p&gt;Featured Article: Choose a standout or popular blog post and provide a brief introduction. Link to the full article to encourage readers to explore further.&lt;/p&gt;

&lt;p&gt;Resources: If you have recommended books, tools, or other resources related to your blog's topics, list them with descriptions and links.&lt;/p&gt;

&lt;p&gt;Contributing Guidelines: If you allow guest authors or contributions, explain how others can contribute to your blog. Provide clear guidelines and expectations.&lt;/p&gt;

&lt;p&gt;License Information: Clearly state the license under which your blog's content is published. Include a link to the full license for more details.&lt;/p&gt;

&lt;p&gt;Formatting and Images: Use Markdown formatting to structure your content. Insert images, such as your banner image, demo images, or logos, to make your README visually appealing.&lt;/p&gt;

&lt;p&gt;Consistent Styling: Maintain a consistent visual style throughout your README. Use headings, bullet points, and lists to organize information. Choose a color palette that complements your banner image.&lt;/p&gt;

&lt;p&gt;Clarity and Conciseness: Keep your content concise and easy to understand. Avoid unnecessary jargon or overly technical language that might alienate some readers.&lt;/p&gt;

&lt;p&gt;Preview and Test: Before publishing, preview your README to ensure it looks the way you want. Test all links to make sure they are working correctly.&lt;/p&gt;

&lt;p&gt;Version Control: Regularly update your README with new articles, changes, or updates to keep visitors engaged and informed.&lt;/p&gt;

&lt;p&gt;Remember that the goal is to create a visually appealing and informative README that captures visitors' attention and encourages them to explore your blog further. By organizing your content effectively and adding visual elements, you can make your GitHub blog README both beautiful and engaging.&lt;/p&gt;

</description>
      <category>github</category>
      <category>githubactions</category>
      <category>blogs</category>
      <category>readme</category>
    </item>
    <item>
      <title>HotPatching</title>
      <dc:creator>Ritesh Agrawal</dc:creator>
      <pubDate>Sat, 01 Apr 2023 07:36:25 +0000</pubDate>
      <link>https://dev.to/agrawalritesh/hotpatching-21np</link>
      <guid>https://dev.to/agrawalritesh/hotpatching-21np</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hotpatching&lt;/strong&gt; is a technique used in software development to update a running program or system without the need for a full restart or shutdown.&lt;/p&gt;

&lt;p&gt;Before moving to Hotpatching, Lets understand what is &lt;strong&gt;Patching&lt;/strong&gt; and why &lt;strong&gt;Patching&lt;/strong&gt; is required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Patching&lt;/em&gt;&lt;/strong&gt; refers to the process of updating software by applying changes, fixes, or enhancements to the code or configuration of a program or system. Patches are typically developed and released by software vendors in response to bugs, security vulnerabilities, or other issues that have been identified in their products.&lt;/p&gt;

&lt;p&gt;The patching process typically involves the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Identification:&lt;/em&gt;&lt;/strong&gt; The first step in patching is identifying the need for a patch. This could be in response to a known security vulnerability, a bug that has been reported by users, or other issues that have been identified during testing or monitoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Development:&lt;/em&gt;&lt;/strong&gt; The next step is developing the patch itself. This could involve writing new code, modifying existing code, or making changes to configuration files or other system resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Testing:&lt;/em&gt;&lt;/strong&gt; Before releasing the patch to users, it is important to test it thoroughly to ensure that it works as expected and doesn't introduce any new issues or bugs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Release:&lt;/em&gt;&lt;/strong&gt; Once the patch has been tested and validated, it can be released to users. This typically involves making the patch available for download from the vendor's website, through an automatic update mechanism, or through other channels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Deployment:&lt;/em&gt;&lt;/strong&gt; Finally, users need to deploy the patch to their systems. This could involve manually installing the patch, or using automated tools to deploy it across multiple systems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Patching is an important process for maintaining the security and stability of software systems. By regularly applying patches and updates, users can help to protect their systems from security threats, fix bugs and other issues, and take advantage of new features and functionality.&lt;/p&gt;

&lt;p&gt;Servers, like any other computer systems, are vulnerable to bugs, security vulnerabilities, and other issues that can affect their performance and stability.&lt;/p&gt;

&lt;p&gt;Here are some reasons why patching servers is important:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Security:&lt;/em&gt;&lt;/strong&gt; Server patching helps to keep your system secure by addressing known vulnerabilities that can be exploited by attackers. By keeping your servers up to date with the latest security patches, you can reduce the risk of data breaches and other security incidents.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Stability:&lt;/em&gt;&lt;/strong&gt; Software bugs can cause crashes, hangs, and other stability issues that can impact the availability and performance of your servers. Patching servers helps to address these issues and keep your systems running smoothly.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Compliance:&lt;/em&gt;&lt;/strong&gt; Many organizations are subject to regulatory requirements that mandate regular software updates and security patches. By patching your servers, you can help ensure that you remain compliant with these requirements.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;New features:&lt;/em&gt;&lt;/strong&gt; Server patching can also help to introduce new features, functionality, and performance improvements that can benefit your organization. By staying up to date with the latest patches and updates, you can take advantage of the latest advances in server technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hotpatching
&lt;/h2&gt;

&lt;p&gt;It is also sometimes called "live patching" or "dynamic software updating." The technique has been around for many years, but it has become more popular in recent years as more organizations have adopted DevOps and agile software development practices.&lt;/p&gt;

&lt;p&gt;One of the key benefits of hotpatching is that it allows software updates to be deployed quickly and without downtime, i.e. this technique allows updates to be applied quickly and efficiently, reducing downtime and minimizing disruptions to users. This is particularly important in environments where uptime is critical, such as in data centers, cloud computing platforms, and other high-availability systems. By applying updates in real-time, organizations can avoid the costs and risks associated with system downtime and disruption.&lt;/p&gt;

&lt;p&gt;Hotpatching can also help organizations to address security vulnerabilities and other critical issues more quickly. By deploying patches in real-time, organizations can minimize the window of opportunity for attackers to exploit vulnerabilities and reduce the risk of data breaches or other security incidents.&lt;/p&gt;

&lt;p&gt;In hotpatching, a patch or update is applied to a running program or system by dynamically modifying the code in memory, without the need for a full recompilation or restart. This is achieved by identifying the areas of the code that need to be updated and replacing them with new code that is loaded into memory.&lt;/p&gt;

&lt;p&gt;There are some limitations to hotpatching, however. The technique can be complex to implement and may not work for all types of updates or software configurations. In some cases, a full system reboot may still be required to apply updates properly.&lt;/p&gt;

&lt;p&gt;Overall, hotpatching is a powerful technique that can help organizations to deploy software updates quickly and efficiently, while minimizing downtime and disruption. By adopting this technique, organizations can improve their agility, reduce risk, and deliver better services to their users.&lt;/p&gt;

&lt;p&gt;Using hotpatching typically involves the following steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Identify the need for a patch or update:&lt;/strong&gt; The first step is to identify the need for a patch or update to a running program or system. This could be in response to a security vulnerability, bug, or other issue that needs to be addressed.&lt;br&gt;
&lt;strong&gt;2. Develop the patch:&lt;/strong&gt; The next step is to develop the patch or update that will be applied to the running program or system.&lt;br&gt;
&lt;strong&gt;3. Test the patch:&lt;/strong&gt; Before applying the patch to a running system, it's important to test it thoroughly to ensure that it works as expected and doesn't introduce any new issues or bugs.&lt;br&gt;
&lt;strong&gt;4. Apply the patch:&lt;/strong&gt; Once the patch has been tested and validated, it can be applied to the running program or system using a hotpatching tool or framework. This will typically involve modifying the code in memory to replace the old code with the new patch.&lt;br&gt;
&lt;strong&gt;5. Verify the patch:&lt;/strong&gt; After applying the patch, it's important to verify that it has been applied correctly and that the running program or system is functioning as expected.&lt;/p&gt;

</description>
      <category>hotpatch</category>
      <category>devops</category>
      <category>azure</category>
      <category>microsoftcloud</category>
    </item>
    <item>
      <title>Install Apache2 and MySQL on Ubuntu Server in Azure</title>
      <dc:creator>Ritesh Agrawal</dc:creator>
      <pubDate>Mon, 20 Feb 2023 18:22:58 +0000</pubDate>
      <link>https://dev.to/agrawalritesh/install-apache2-and-mysql-on-ubuntu-server-in-azure-5174</link>
      <guid>https://dev.to/agrawalritesh/install-apache2-and-mysql-on-ubuntu-server-in-azure-5174</guid>
      <description>&lt;p&gt;Here you will find the Knowledge base article on how to install apache2 and MySQL on the Ubuntu server of Azure Cloud using CLI in a few steps.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Prerequisites:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Basic knowledge of Linux.&lt;/li&gt;
&lt;li&gt;Familiar with Azure portal. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Installing of Apache2.
&lt;/h2&gt;

&lt;p&gt;Follow the below steps and parallelly start working on it.&lt;/p&gt;

&lt;p&gt;(&lt;em&gt;All Snips attached for Reference&lt;/em&gt;)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JiW1buov--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mugdjtr7o5975062fvg4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JiW1buov--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mugdjtr7o5975062fvg4.png" alt="Ubuntu Virtual Machine in Azure" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
Firstly you should be having a running Ubuntu Virtual Machine / Server in Azure Cloud. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;VM Image : Ubuntu Server18.04 LTS -x64 Gen2&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 2:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wZSdJphl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9cyjt5ykpg2taoc0xg4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wZSdJphl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9cyjt5ykpg2taoc0xg4h.png" alt="SSH PuTTY" width="800" height="893"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now copy the Public IP address from overview tab of Virtual Machine /Server and paste it in &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html"&gt;PuTTY&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Go to Google and download &lt;/em&gt;&lt;em&gt;PuTTY&lt;/em&gt;&lt;em&gt;. (If not installed in your local system). &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html"&gt;Click here to download&lt;/a&gt;. (64-bit x86 recommended)]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SSH the VM/Server using the Username and Password. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 3:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IBTfsJm_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/afrm7q5wvkchwt3owvqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IBTfsJm_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/afrm7q5wvkchwt3owvqu.png" alt="SSH PuTTY" width="800" height="825"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;apache2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will download and install the latest version of Apache2 available in the repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 4:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hpvjcp0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aayo9h105zhlopvx5xiz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hpvjcp0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aayo9h105zhlopvx5xiz.png" alt="IP addressing routing over the Internet for Apache2" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copy the IP address and browse it over Internet.&lt;/p&gt;

&lt;p&gt;After the installation is complete, you can start the Apache service using the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, Apache will serve web pages from the "/var/www/html" directory on the system. &lt;/p&gt;

&lt;p&gt;You can test the installation by opening a web browser and navigating to &lt;strong&gt;&lt;a href="http://localhost/"&gt;http://localhost/&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
or &lt;a href="http://your-server-ip-address"&gt;http://your-server-ip-address&lt;/a&gt;, where you should see the default Apache web page.&lt;/p&gt;

&lt;p&gt;In my case the your-server-ip-address is 20.106.210.31&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 5:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TkBKNn6u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39qgo1ekcsfkgdcgozf6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TkBKNn6u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/39qgo1ekcsfkgdcgozf6.png" alt="SSH PuTTY Linux" width="728" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now run the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; /var/www/html/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command "cd /var/www/html/" is used to change the current directory to the default document root directory of the Apache HTTP Server&lt;/p&gt;

&lt;p&gt;Apache will serve files from this directory by default.&lt;/p&gt;

&lt;p&gt;The "&lt;strong&gt;ls&lt;/strong&gt;" command in Linux is used to list the files and directories in the current working directory or a specified directory.&lt;/p&gt;

&lt;p&gt;You will find one index.html file present here which holds apache2 files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 6:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U0MxFDE---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3h7o5p6z6frt2uiinkqb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U0MxFDE---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3h7o5p6z6frt2uiinkqb.png" alt="SSH PuTTY Linux and Vi Editor for HTML" width="800" height="113"&gt;&lt;/a&gt;&lt;br&gt;
Run the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;vi test.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command "sudo vi test.html" is used to create or edit a file named "test.html" using the Vi text editor.&lt;/p&gt;

&lt;p&gt;"vi" is a powerful text editor that is available on most Unix-based systems, including Linux. With Vi, you can create, edit, and manipulate text files using a variety of commands and keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;After running this command, Vi will open and display the contents of the "test.html" file (if it already exists) or create a new file with that name (if it doesn't exist yet). You can then use Vi's command mode and editing mode to make changes to the file. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cGhE1bN1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xn5g56ichvkpptzdvyzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cGhE1bN1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xn5g56ichvkpptzdvyzn.png" alt="SSH PuTTY Linux and Vi Editor for HTML" width="800" height="1200"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
       &amp;lt;h1&amp;gt; This is the fresh Page &amp;lt;/h1&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you've finished making changes, you can save the file and exit Vi by pressing ‘esc’ button and typing ":wq" and pressing Enter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 7:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---0KZLTjw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78q8wvhrqemyac95pfig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---0KZLTjw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78q8wvhrqemyac95pfig.png" alt="SSH PuTTY Linux and Vi Editor for HTML" width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again check the file you created is present or not using ls command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see test.html file. Kudos! If the file you created is not present, then again repeat the above steps to create one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 8:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yW-Hu_OR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nphowl7nw60i639b7au7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yW-Hu_OR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nphowl7nw60i639b7au7.png" alt="SSH PuTTY Linux and move command for renaming and moving files" width="800" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now move the main index.html file to backup.html for making a backup of it and also move the test.html file to main index.html file.&lt;/p&gt;

&lt;p&gt;For doing this run the below commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mv &lt;/span&gt;index.html backup.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"mv" is the command used to move files and directories in Linux. In this case, we are using it to move the file "index.html" to "backup.html". This command will essentially move the file from its current location to a new file name.&lt;/p&gt;

&lt;p&gt;After running this command, the original "index.html" file will no longer exist in the current directory, and a new file named "backup.html" will take its place.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mv &lt;/span&gt;test.html index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are using it to move the file "test.html" to "index.html". This command will essentially move the file from its current location to a new file name.&lt;/p&gt;

&lt;p&gt;After running this command, the original "test.html" file will no longer exist in the current directory, and a new file named "index.html" will take its place.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 9:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TMdev9aG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/enhv1bhqvssdidolf2ih.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TMdev9aG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/enhv1bhqvssdidolf2ih.png" alt="searching over internet of apache2 installation" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Refresh the page&lt;/p&gt;

&lt;p&gt;Also add /index.html with IP address.&lt;/p&gt;

&lt;p&gt;In my case it is : &lt;strong&gt;20.206.210.31/index.html&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The URL "20.206.210.31/index.html" is an example of a web address or URL that points to a specific file named "index.html" located on a web server with the IP address of 20.206.210.31.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your apache2 is installed successfully on Ubuntu Server in Azure Cloud.
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Moving towards installing of MySQL Server.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;In continuation on same SSH.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rt3jzcxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mh76wzfkl94n8xftxf2k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rt3jzcxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mh76wzfkl94n8xftxf2k.png" alt="SSH for installing MySQL on Ubuntu Server" width="800" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;mysql-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command "sudo apt-get install mysql-server" is used to install the MySQL database server.&lt;/p&gt;

&lt;p&gt;After running this command, APT will download and install the MySQL server package along with any necessary dependencies.&lt;/p&gt;

&lt;p&gt;Press Y yes for giving permission of using additional disk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t9ts_StC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62dlj7nq36bx1vyeh5o1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t9ts_StC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62dlj7nq36bx1vyeh5o1.png" alt="SSH for installing MySQL on Ubuntu Server" width="800" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the installation is completed successfully, check the version&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mysql &lt;span class="nt"&gt;-V&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command is used to check the version of the MySQL database server. &lt;/p&gt;

&lt;p&gt;If MySQL is not present or installed, it will give the error.&lt;/p&gt;

&lt;h3&gt;
  
  
  MySQL Server is also installed successfully on your Ubuntu Server.
&lt;/h3&gt;




</description>
      <category>azure</category>
      <category>apache2</category>
      <category>mysql</category>
      <category>ubuntu</category>
    </item>
  </channel>
</rss>
