It doesn't really matter whether you copy the website or the database first. Nothing will work unless both have been copied properly.
Use FileZilla to upload files, it's the most user-friendly tool out there. It's better than WinSCP. Just make sure to select "SFTP" so that FileZilla will use the secure SSH protocol.
Upload all your site's files to /var/www.
Upload the database backup. Put it somewhere outside of /var/www.
Connect to your server. Type
Code:
mysql -u root -p
When prompted, enter MySQL's root password. You must have entered this when you installed MySQL. It may or may not be the same as the Linode's root password.
Create a user, create a database, and give the user access to the database.
Code:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE databasename;
GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'localhost';
Make sure you replace username, password, and databasename with appropriate values.
Now, exit MySQL:
Code:
exit;
Let's unzip your database backup.
Code:
tar zvfx backupfile.tar.gz
You should end up with a bigger file.
Let's import the database into MySQL.
Code:
mysql -u username -p < name_of_file_you_just_unzipped
Replace username with the actual value used above. When prompted for the password, supply the password you made up above.
Now, find the PHP file somewhere your website where the database username and password are stored. Edit them to match the new values.
Type the IP address of your server in your browser. (If you already have DNS set up, you can use the actual domain name.) Cross fingers.
When you've verified that everything works, delete the database backup that you've uploaded to your server. You don't want it lying around there.