Categories
Linux MySQL

Import SQL Script to MySQL using the Command Line

Summary: We have acquired a large databse dump which we need to import into our local system. Since the database size is large, phpmyadmin can’t help. MySQL command line tool comes to our rescue 🙂


Change directory to where our SQL script is:

First login to mysql:

Change database to our target database:

Execute the SQL Script:

Categories
Linux

Configuring Amazon EC2 Instance with Ubuntu: Enabling remote root access

The other day, I was setting up an amazon EC2 instance for Leevio. It is a rare experience since we do not setup a new instance everyday! 😀 So, I am gonna share what I did to do what.

First, Hasin vai gave me a secret email address and a password which I used to login to the Amazon backend. There are quite a number of tabs for different services. I chose the EC2 tab. There was no instance created, so I went ahead and created a new instance. While creating it I was driven through a simple configuration wizard. It asked me to select the instance type, create some tags for the instance and choose a operating system image and finally I created network access permission. I chose Ubuntu 11.10 (the then latest one). The permission set dictates which IPs shall get access to which ports. I opened up port 80 for http connection and port 22 for SSH and SFTP. There are preset settings to open all TCP ports, UDP ports and All ports etc. You can choose the access level manually or pick one of this presets. I did manually since I wanted to learn how it worked.

Then I saved the ssh keys and secured them in a secret place on my HDD 😀 I also noted the public DNS of the instance. I typed in the following command to login to the ubuntu machine running on the instance:

The first problem I got is the “too open permission” for the key file. In fact if your key file has such a permission that other users on the same machine can access it, you can not use the key. Keys are meant to be private and make them private by issuing the following command:

Now I issued the previous command and I got in! Yay! 😀

My default username is “ubuntu”. To configure stuff, I need to be “root”. So I hit:

By default the root username doesn’t have a password. When prompted for a password, just press enter. I logged in as root. But wait, I am using a Linux machine and the root user has no password? I can’t stand that! So I decided to change the password of root account first. The process is simple:

I was asked twice the password and upon confirmation, the root account now had a super secret password which is known to only me in the whole universe 😀

The second issue we still have is that root user still can’t login via ssh. To do so, we have to enable PasswordAuthentication on the server. With my mighty root power, I installed vim on the fly and edited the heart of ssh daemon:

I navigated to the “PasswordAuthentication” section and changed it’s value from “no” to “yes”. Then I reloaded the daemon by typing:

Then I typed in these commands to exit the root shell and logout from the remote shell:

I then assigned an IP address to the instance from the IP management section and reloaded the instance. Now I can login to the server from my laptop using the command:

PS: Using the key pair to login is a more secured and recommended way of doing the stuff. But it’s easier to do stuff using remote root login.

Categories
Uncategorized

Doing magic with C# Method Extension

Say, we have a class defined in one of the assemblies shipped with a third party solution. It would be a great help if you could add a helper method to one of the objects. Unfortunately, we do not have the source code. 🙁 What do we do?

In such scenarios, .NET hasn’t left us alone in the desert 😀 The method extension technique will allow us to add our own methods to classes of our choice. Want to see an example? Take the List generics, every list of a generic type has some handy methods. Now we want to add one of ours. Printing each of the element in a list requires us to setup a foreach() loop every time. Why don’t we add an extension method named “Print()” which would print all the elements in a list – one by one? Let’s get our hands dirty!

Facts to remember:
— To extend a class and add method, we must declare a public static class with some name. The name doesn’t matter at all.
— We should define a method with our desired name in that class.
— The first parameter to the method will be “this < Object_we_want_to_extend > parameterName”. Do not forget the “this” keyword. It is the magic wand that does the magic.
— We can pass additional parameters.
— When calling the extended method from the original object, the first parameter is not required to pass. You can ignore it as if it were never there.
— For safety and security the extended method can not access private areas (fields, properties or methods).

So what do all these mean? Show me some codes! Okay, here you go:

The output shall be:

Cool, no? 😀 The code is commented as much as I thought necessary. Feel free to ask a question or submit any feedback you might come up with 🙂

Have fun implementing some extended methods on your own 🙂