If the MySQL server cannot find the mysql
privileges database or other critical files, you may see
these messsages:
System error 1067 has occurred.
Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
These messages often occur when the MySQL base or data
directories are installed in different locations than the
default locations (C:\Program Files\MySQL\MySQL
Server 5.1
and C:\Program
Files\MySQL\MySQL Server 5.1\data
,
respectively).
This situation may occur when MySQL is upgraded and
installed to a new location, but the configuration file is
not updated to reflect the new location. In addition, there
may be old and new configuration files that conflict. Be
sure to delete or rename any old configuration files when
upgrading MySQL.
If you have installed MySQL to a directory other than
C:\Program Files\MySQL\MySQL Server
5.1
, you need to ensure that the
MySQL server is aware of this through the use of a
configuration (my.ini
) file. The
my.ini
file needs to be located in your
Windows directory, typically C:\WINDOWS
or C:\WINNT
. You can determine its
exact location from the value of the
WINDIR
environment variable by issuing
the following command from the command prompt:
C:\> echo %WINDIR%
An option file can be created and modified with any text
editor, such as Notepad. For example, if MySQL is installed
in E:\mysql
and the data directory is
D:\MySQLdata
, you can create the option
file and set up a [mysqld]
section to
specify values for the basedir
and
datadir
parameters:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=D:/MySQLdata
Note that Windows pathnames are specified in option files
using (forward) slashes rather than backslashes. If you do
use backslashes, you must double them:
[mysqld]
# set basedir to your installation path
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:\\MySQLdata
If you change the datadir
value in your
MySQL configuration file, you must move the contents of the
existing MySQL data directory before restarting the MySQL
server.
See Section 2.3.7, “Creating an Option File”.
If you reinstall or upgrade MySQL without first stopping and
removing the existing MySQL service and install MySQL using
the MySQL Configuration Wizard, you may see this error:
Error: Cannot create Windows service for MySql. Error: 0
This occurs when the Configuration Wizard tries to install
the service and finds an existing service with the same
name.
One solution to this problem is to choose a service name
other than mysql
when using the
configuration wizard. This allows the new service to be
installed correctly, but leaves the outdated service in
place. Although this is harmless, it is best to remove old
services that are no longer in use.
To permanently remove the old mysql
service, execute the following command as a user with
administrative privileges, on the command-line:
C:\> sc delete mysql
[SC] DeleteService SUCCESS
If the sc
utility is not available for
your version of Windows, download the
delsrv
utility from
https://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp
and use the delsrv mysql
syntax.