### 2.3.6 Windows Postinstallation Procedures

 GUI tools exist that perform most of the tasks described in this section, including:

* [MySQL Installer](mysql-installer.html): Used to install and upgrade MySQL products.

* [MySQL Workbench](workbench.html): Manages the MySQL server and edits SQL statements.

 If necessary, initialize the data directory and create the MySQL grant tables. Windows installation operations performed by MySQL Installer initialize the data directory automatically. For installation from a ZIP Archive package, initialize the data directory as described at [Section 2.10.1, “Initializing the Data Directory”](data-directory-initialization.html).

 Regarding passwords, if you installed MySQL using the MySQL Installer, you may have already assigned a password to the initial `root` account. (See [Section 2.3.3, “MySQL Installer for Windows”](mysql-installer.html).) Otherwise, use the password-assignment procedure given in [Section 2.10.4, “Securing the Initial MySQL Account”](default-privileges.html).

 Before assigning a password, you might want to try running some client programs to make sure that you can connect to the server and that it is operating properly. Make sure that the server is running (see [Section 2.3.4.5, “Starting the Server for the First Time”](windows-server-first-start.html)). You can also set up a MySQL service that runs automatically when Windows starts (see [Section 2.3.4.8, “Starting MySQL as a Windows Service”](windows-start-service.html)).

 These instructions assume that your current location is the MySQL installation directory and that it has a `bin` subdirectory containing the MySQL programs used here. If that is not true, adjust the command path names accordingly.

 If you installed MySQL using MySQL Installer (see [Section 2.3.3, “MySQL Installer for Windows”](mysql-installer.html)), the default installation directory is `C:\Program Files\MySQL\MySQL Server 8.0`:

```
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0"
```

 A common installation location for installation from a ZIP archive is `C:\mysql`:

```
C:\> cd C:\mysql
```

[]()[]()

 Alternatively, add the `bin` directory to your `PATH` environment variable setting. That enables your command interpreter to find MySQL programs properly, so that you can run a program by typing only its name, not its path name. See [Section 2.3.4.7, “Customizing the PATH for MySQL Tools”](mysql-installation-windows-path.html).

 With the server running, issue the following commands to verify that you can retrieve information from the server. The output should be similar to that shown here.

 Use [**mysqlshow**](mysqlshow.html) to see what databases exist:

```
C:\> bin\mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
```

 The list of installed databases may vary, but always includes at least `mysql` and `information_schema`.

 The preceding command (and commands for other MySQL programs such as [**mysql**](mysql.html)) may not work if the correct MySQL account does not exist. For example, the program may fail with an error, or you may not be able to view all databases. If you install MySQL using MySQL Installer, the `root` user is created automatically with the password you supplied. In this case, you should use the `-u root` and `-p` options. (You must use those options if you have already secured the initial MySQL accounts.) With `-p`, the client program prompts for the `root` password. For example:

```
C:\> bin\mysqlshow -u root -p
Enter password: (enter root password here)
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
```

 If you specify a database name, [**mysqlshow**](mysqlshow.html) displays a list of the tables within the database:

```
C:\> bin\mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
```

 Use the [**mysql**](mysql.html) program to select information from a table in the `mysql` database:

```
C:\> bin\mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+
```

 For more information about [**mysql**](mysql.html) and [**mysqlshow**](mysqlshow.html), see [Section 4.5.1, “mysql — The MySQL Command-Line Client”](mysql.html), and [Section 4.5.7, “mysqlshow — Display Database, Table, and Column Information”](mysqlshow.html).

