Okay, first off - take a deep breath and move slowly. You can figure this out without destroying everything if you remain calm.
Verify you're still being asked for the same information on login. Concrete5 has two ways of logging in, either using your username (ie: "admin") or your email. Sometimes an upgrade or something might cause your site to go from using one mode to the other. If you're used to logging in with a user name and all of a sudden it's asking for email, that can be very hard to realize, and it will make it feel like you simply can't login without resetting your password. Take a second to read what that login page is asking you for, email or username?
Try resetting your password. At the bottom of that login page is a forgot password form. Put the email address you used to setup Concrete5 with in there, and it will send a email to that address with a link to reset the admin's password. EVERY Concrete5 install has a root admin account, and EVERY install has to have a email associated with it.
If you don't get the email to admin, several things could be going on. Perhaps the email address just isn't something you actually get emails at. Perhaps something about the server is keeping mail messages from going out. Regardless, you're going to need database access to proceed further. Using PhpMyAdmin or some tool to get at your database, find the Concrete5 database and look for the LOGS table.
In the LOGS table you will see at least one row. This is a copy of the email the system just tried to send to your admin account. Even if you brilliantly setup concrete5 with a fake email, the message Concrete5 is trying to send will be logged here. Go ahead and look at the content of that email. There will be a link in it. Click that link.
You will now be taken to a reset your password interface. Use it. You're in.
You can also directly reset your password directly in the Concrete5 database. What you do is replace the uPassword field value for the user with the MD5 value of the new password and PASSWORD_SALT from your config/site.php, separated with a column (:) like md5('newpassword:password_salt'). So, here is what you need to do in detail:
Take the PASSWORD_SALT value from your config/site.php. This is the line that look something like:
The username or email of the user whom you want to reset the password for.
Now, connect to your database (mysql client or PhpMyAdmin) and run this SQL statement, replacing newpassword with your desired password:
If you know the username, e.g. admin:
UPDATE Users SET uPassword = md5('newpassword:aDvKJiOUPACg2WNRnjLpBTqGr1') WHERE uName = 'admin';
If you know the email, e.g. email@example.com:
UPDATE Users SET uPassword = md5('newpassword:aDvKJiOUPACg2WNRnjLpBTqGr1') WHERE uEmail = 'firstname.lastname@example.org';
Once done, you should be able to login with the new password.
If for whatever reason you no longer have access to the email address listed in the database, simply set the value of the uEmail field to match to your new email address. This can be done using the command line MySQL utility or even a database utility like phpMyAdmin (available in many hosting packages) or similar:
UPDATE Users SET uEmail = 'email@example.com' WHERE uName = 'admin';
You should them be able to successfully use the password reset form to get a new password set.
Thanks to SteamSynthetic for this suggestion!
If that doesn't help you, there are still a few options available to you:
Two other ways I like to recover access when I have access to the server.
Add a new user with admin privs:
INSERT INTO Users (uName, uEmail, uIsActive) VALUES ('newusername', 'firstname.lastname@example.org', 1); INSERT INTO UserGroups (uID, gID) VALUES ([whatever your uID was], 3);
Then use the forgot password function to have it send you a new password.