The following result of the CURRENT_USER()
mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| @localhost |
+----------------+
1 row in set (0.00 sec)
says that you're currently using the database as anonymous user. A freshly installed MySQL db has the following user entries in its mysql.user table:
mysql> SELECT user,host,password from mysql.user;
+------------------+-----------------+-------------------------------------------+
| user | host | password |
+------------------+-----------------+-------------------------------------------+
| root | localhost | *........................................ |
| root | xxxx | *........................................ |
| root | 127.0.0.1 | *........................................ |
| root | ::1 | *........................................ |
| | localhost | |
| | xxxxx | |
| debian-sys-maint | localhost | *........................................ |
+------------------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)
There are some root accounts (password-secured) and two anonymous accounts allowing a logon from localhost (the xxxxx entry is the machine's hostname).
If there's an entry in the user table lacking username and password, the following rule applies:
If the User value is blank, it matches any user name. If the user
table row that matches an incoming connection has a blank user name,
the user is considered to be an anonymous user with no name, not a
user with the name that the client actually specified. This means that
a blank user name is used for all further access checking for the
duration of the connection (that is, during Stage 2).
(see the MySQL docs, "6.2.4. Access Control, Stage 1: Connection Verification")
In general, after installing MySQL, you should take notice of the following part of the documentation: "2.11.2. Securing the Initial MySQL Accounts".