0

I installed MySQL database and according to show databases command I have a database named 'mysql'. Is this database used for holding some internal values for MySQL? In addition, is it possible to view the content of rows of tables in 'mysql' database? Usual SELECT * FROM tablename does not seem to work:

mysql> describe servers;
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| Server_name | char(64) | NO   | PRI |         |       |
| Host        | char(64) | NO   |     |         |       |
| Db          | char(64) | NO   |     |         |       |
| Username    | char(64) | NO   |     |         |       |
| Password    | char(64) | NO   |     |         |       |
| Port        | int(4)   | NO   |     | 0       |       |
| Socket      | char(64) | NO   |     |         |       |
| Wrapper     | char(64) | NO   |     |         |       |
| Owner       | char(64) | NO   |     |         |       |
+-------------+----------+------+-----+---------+-------+
9 rows in set (0.00 sec)

mysql> SELECT * FROM servers;
Empty set (0.00 sec)

mysql> 
RolandoMySQLDBA
  • 182,700
  • 33
  • 317
  • 520
Martin
  • 99

1 Answers1

0

The mysql.servers table is used only in conjunction with any table that uses the FEDERATED Storage Engine. It's in the MySQL Documentation:

FEDERATED tables may be replicated to other slaves, but you must ensure that the slave servers are able to use the user/password combination that is defined in the CONNECTION string (or the row in the mysql.servers table) to connect to the remote server.

Therefore, a freshly installed MySQL instance will have mysql.servers empty. If you create a FEDERATED table, then the username/password for a remote table is populated in mysql.servers.

What you are looking for is the information_schema database. For example,

RolandoMySQLDBA
  • 182,700
  • 33
  • 317
  • 520