Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb

2.3.7 Windows 上の MySQL をアップグレードする

Windows 上の MySQL をアップグレードするには、次の手順に従います。

  1. セクション2.11.1「MySQL のアップグレード」 の、Windows に特化しない MySQL のアップグレードに関する詳細を参照してください。

  2. アップグレードを実行する前に、必ず現在の MySQL インストールをバックアップしてください。セクション7.2「データベースバックアップ方法」を参照してください。

  3. MySQL の最新の Windows 配布を からダウンロードします。

  4. MySQL をアップグレードする前に、サーバーを停止します。サーバーをサービスとしてインストールしている場合は、コマンドプロンプトから次のコマンドでサービスを停止します。


    MySQL Server をサービスとして実行していない場合は、mysqladmin を使用して停止します。たとえば、MySQL 5.5 から 5.6 にアップグレードする前に、mysqladmin を MySQL 5.5 から次のように使用します。

    C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin" -u root shutdown

    MySQL の root ユーザーアカウントにパスワードが設定されている場合は、mysqladmin-p オプションを使って起動し、要求されたらパスワードを入力します。

  5. MySQL 4.1.5 より前のバージョンから 5.6 へのアップグレード、または Zip アーカイブからインストールされた MySQL のバージョンから MySQL Installation Wizard でインストールされる MySQL のバージョンへのアップグレードの場合は、その前にまず手動で以前のインストールおよび MySQL サービス (サーバーがサービスとしてインストールされている場合) を削除しなければなりません。

    MySQL サービスを削除するには次のコマンドを使用します。

    C:\> C:\mysql\bin\mysqld --remove

    既存のサービスを削除しないと、MySQL Installation Wizard は新しい MySQL サービスを適切にインストールできない場合があります。

  6. MySQL Installer を使用する場合は、セクション2.3.3「MySQL Installer を使用した MySQL の Microsoft Windows へのインストール」 の説明に従って起動します。

  7. MySQL を Zip アーカイブからアップグレードする場合は、アーカイブを抽出します。既存の MySQL のインストールを上書きする (通常 C:\mysql にあります) か、あるいは C:\mysql5 などの異なるディレクトリにインストールします。既存のインストールの上書きをお勧めしています。しかし、(はじめてインストールする場合に対して) アップグレードの場合は、現在のデータファイルが置換されるのを避けるため、既存の MySQL インストールからデータディレクトリを削除しなければなりません。そのためには、次の手順に従います。

    1. Zip アーカイブを、現在の MySQL インストールとは別の場所に解凍します。

    2. データディレクトリを削除します。

    3. Zip アーカイブを再圧縮します。

    4. 変更した Zip アーカイブを既存のインストールの上に解凍します。


    1. Zip アーカイブを、現在の MySQL インストールとは別の場所に解凍します。

    2. データディレクトリを削除します。

    3. データディレクトリを、現在の MySQL インストールから今削除したデータディレクトリに移動します。

    4. 現在の MySQL インストールを削除します。

    5. 解凍したインストールを今削除したインストールの場所に移動します。

  8. MySQL を Windows のサービスとして使用していて、この手順で以前にサービスを削除した場合は、サービスを再インストールします。(セクション2.3.5.7「Windows のサービスとして MySQL を起動する」 を参照してください。)

  9. サーバーを再起動します。MySQL をサービスとして使用している場合は NET START MySQL などを使用するか、あるいは mysqld を直接実行します。

  10. 管理者として mysql_upgrade を実行してテーブルをチェックし、必要に応じて修復を試み、付与テーブルが変更されている場合は更新して新機能を利用できるようにします。セクション4.4.7「mysql_upgrade — MySQL テーブルのチェックとアップグレード」を参照してください。

  11. エラーが発生する場合は セクション2.3.6「Microsoft Windows MySQL Server インストールのトラブルシューティング」 を参照します。

User Comments
  Posted by Stuart Chase on April 21, 2005
If you do forget to remove the service. Especially when uninstalling and installing a fresh copy.

Goto regedit in:

Find mysql and delete. Reboot to take effect in services manager.
  Posted by Pornsak Puttaracha on August 15, 2005
"sc delete mysql" will delete the service and update the list without having to reboot the machine.

Note that the "sc" command was introduced in Windows XP.
  Posted by Gene Scharmann on October 23, 2005
The 'sc delete mysql' is also available in the Microsoft Windows 2000 Professional Resource Kit. (Not only XP)

  Posted by Bob Savard on January 6, 2006
This may seem obvious, but:

Step 6 says to overwrite your existing MySQL install, but if
you do, you'll overwrite any security changes you may have made to the mysql database (most probably the user and db tables). So only overwrite them if you know you haven't made any changes to that database.
  Posted by Mike Hebblethwaite on January 8, 2006
You do not need to uninstall the service
Simply change the my.ini file in C:\windows\my.ini

Then copy the new mysqld-nt.exe to the oldversion/bin/ folder.

Change the line basedir=C:/apache/mysql to
for example or whatever you called the new folder.

Leave the data folder path the same if you want
datadir=C:/apache/mysql/data or

datadir=C:/apache/newversion/data if you want a new mysql without any data in it.

That way if the new version makes new issues for you (errors) just change the my.ini path back to the old version's folder.

In simple terms there is no need to change your data folder and so you keep all the info and users data safe.

Updating the mysql_fix_privilege_tables is still the same problem for us though.
  Posted by Jacob Nikom on January 19, 2007
If during windows installation MySQL server refuses
to be connected to try to do the following:
1. Check that the MySQL server is running
->ControlPanel->Administrative Tools->Component Services->Services(local)

2. Use the client command without password:
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql" -u root

By default MySQL installation creates the following privileges:
mysql> select user, host, password from user;
| user | host | password |
| root | localhost | |
1 row in set (0.00 sec)

Once you got in you can change the privileges and create secure

  Posted by Phil Collett on May 11, 2007
I had some fun upgrading from mysql-4.1.15-win32 (mysql 4.1) to mysql-5.0.41-win32. I figured I would write down what I did to save people time. The permissions table thing is still tricky. I used the no-installer to get the version 5 mysql. Then I just swapped the installs as I had done in the past. when I relaunched mysql (mysql5/bin/mysqld-nt --console) I kept getting Error 1130 [HYO 000x] cannot logon locally errors. So this was the mysql permission tables upgrade problem. After attacking the upgrade from a few differnt angles I found the way that worked for me. This is detailed below.

The upgrade took me 15 minutes after I had my plan.

1. download mysql 5 no install.
2. unzip it.
3. export you mysql.db and mysql.user tables using whatever tool you use (make import of old users permissions and table rights)
so you get something like (I used EMS extract)...

use mysql;
INSERT INTO `db` (`Host`, `Db`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`) VALUES
next rec..
next rec
# Data for the `db` table (LIMIT 0,500)
INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`) VALUES
('%','parts','old-encrypted-password','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0), rec.....;

save as a text file somewhere.
4. open a command window and end the mysql service, if you run as service.
5. go to mysql install folder/bin and unregister whatever mysql daemon you are using
c:/mysql/bin/mysqld-nt --remove

6. zip up all your old mysql (basedir and DataDir) for
backup and later use.
7. find all your old my.cnf and my.ini files that were left over from previous installs and put them in you backup folder with the other ziped folders so the new install can't see them.

8. place mysql 5's unzipped stuff where ever you want it to run from (mine is c:/mysql5.

9. just let iot use the mysql and test databases at first to get mysql5 running.
10. Set up your my.ini file for mysql 5 and just leave it in the mysql directory (none in %sysroot% any more I guess.
11. start mysql5 in console c:/mysql5/bin/mysqld-nt --console.
12. Try to log into the console with a blank root password (since this is a fresh install).
13. assuming you got this far, type "SHOW DATABASES;" in mysql. Should only be Mysql and Test.
14. Copy you old databases except of course the 4.1 mysql and 4.1 test dbs (if it is still there) to you c:/mysql5/data/ directory.
15. check in mysql console if they can be seen by running "Show Databases;" again.
16. Hopefully that worked, no import your old db and user permission from the sql file you made earlier.
in mysql console: SOURCE "c:/your-file-path.txt";
that should bring in your old user and password in the old format.
17. check if you import worked by selecting from users (use mysql; select * from user;)
18. I was fine at this point besides the old password format, so I ran the Mysql_upgrade.exe file that is mentioned in here a million times, but omly worked for me this way.
18. I ran mysql_upgrade from a batch file:
C:\mysql5\bin\mysql_upgrade.exe --datadir=c:/mysql5/data/ --basedir=c:/mysql5/ -u root

19. a whole bunch of output about bad table struct, 4.1 style passwords and duplicate columns. when it finsihed I ran it again, and only got the dup column warnings which can be ignored. Then I ran it again just for fun.
20. at this point all the db's are in the right structure, my logins all worked.
21. closed my console session running mysql, closed my console window mysql was running in (--mysqld-nt --console) and moved my data directory back to which it came (personal choice).
22. Checked my cofig file (in mysql base dir ...c:/mysql5/my.ini) using "c/mysql5/mysqld-nt --print-defaults" and they looked fine, changed my datadir="x:/path", and re-ran the --print-defaults.
22. I then reinstalled the msyql as a service with the my.ini file still only in my basedir (c:/mysql5/bin/mysqld-nt --install), and started mysql (net start mysql) or services gui.
23. Last thing, make the root user a password, easily crackable of course like a bad word (don't really do this, but do make a password).

Hope that saves somebody else some time.
Citrus Motors
  Posted by Brian Wendt on February 5, 2010
If when you go to install again it can't start the service & it had asked you for the old root password, you need to delete the folder C:\ProgramData\MySQL
This took me 3 hours to discover, its BS that no one seems to have pointed out this fact.
  Posted by Jacob Pérez on January 12, 2012
For time reason I'll make my comment on spanish languaje, later I'll translate at english languaje.

I hope can help at someone this contribution:

Actualización de MySQL Server en Windows
1. Descargar la nueva versión de MySQL en archivo .zip
2. Detener el servicios de MySQL
a. Inicio – Panel de control – Sistema y seguridad – Herramientas administrativas – Servicios
b. Seleccionar el nombre del servicio de MySQL y detenerlo
3. Eliminar el servicio de MySQL
a. Inicio – Ejecutar
b. Escribir regedit y dar aceptar
c. Eliminar el siguiente registro HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Service
d. Reiniciar el equipo
4. Actualizar MySQL Server
a. Inicio – Equipo
b. Ubicarse en la ruta donde se instaló MySQL Server
C:\Program Files\MySQL\MySQL Server x.x
c. Abrir el archivo .zip y descomprimir el contenido en la carpeta donde está instalado MySQL Server
d. Reemplazar todos los archivos
5. Configurar el servicio e instancia de MySQL Server
a. Inicio – Todos los programas – MySQL – MySQL Server x.x - MySQL Instance Configuration Wizard
b. Siguiente – Siguiente – Siguiente – Siguiente – Siguiente
c. En algunos casos reconoce dónde ha sido instalado MySQL Server, por lo que bastará con dar Siguiente, en caso contrario dar Modificar – Sí – Siguiente
d. Siguiente – Indicar el puerto con el que se va a trabajar y agregar la excepción del puerto en Firewall – Siguiente
e. Indicar Selección manual de caracteres por defecto e indicar utf8 – Siguiente
f. Siguiente
g. Desmarcar Modicar las configuraciones de seguridad – Siguiente – Ejecutar

  Posted by Jacob Pérez on January 13, 2012
I'll post my suggest on English Language, for upgrading MySQL Server on Windows OS.

Upgrading MySQL Server on Windows
1. Donwload the new version of MySQL on zip format
2. Stopping MySQL Service
a. Start – All programs - Control Panel – System and security – Administrative tools - Services
b. Select the MySQL Services name and stopped
3. Delete MySQL service
a. Start – Run
b. Type regedit and Ok
c. Delete the next item HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Service
d. Restart the computer
4. Updating MySQL Server
a. Start - Computer
b. Look for the path was installed MySQL Server C:\Program Files\MySQL\MySQL Server x.x
c. Open the .zip file and uncompress the files on the folder was installed MySQL Server
d. Replace all the files
5. MySQL Instance Configuration
a. Start – All programs - MySQL – MySQL Server x.x - MySQL Instance Configuration Wizard
b. Next – Next – Next – Next – Next
c. Some times recognize the path where was installed MySQL Server, on this case clic on Next, if don’t recognize the path clic on Modify – Yes – Next
d. Next – Indicated the port for the MySQL Service and check Add firewall exception for this port – Next
e. Check Manual Selected Default Character Set / Collation and indicated utf8 on Character Set – Next
f. Next
g. Uncheck Modify Security Settings – Next – Execute

I hope can help at someone.
  Posted by Attila R on April 8, 2013
I did unzipped 5.6.10 onto an older version 5.6.x on Windows.

my.ini did't overwrote and contained these lines:

password = something

From this point I lost _ALL_ access to MySQL:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

I mean mysql.exe or mysql_upgrade.exe also didn't worked.

I figured out the problem was the password line in my.ini. I did commented out temporarily, ran mysql_upgrade.exe then I did uncommented then everything worked well.
  Posted by 庭豐 石 on November 7, 2013
Point 5 in this article implies that when upgrading from 5.1 to 5.5, we need to uninstall MySQL Server 5.1 first. That is, we cannot run installer for 5.5 and expect it to *upgrade* installed version 5.1 to 5.5.

To those who want to remove my comment, read the following first:
Please refer to
In section of that article, please pay attention to the 2nd paragraph that I include here below:
Automatic upgrades are available only when upgrading between installations that have the *same major and minor version numbers*. For example, you can upgrade automatically from MySQL 5.1.5 to MySQL 5.1.6, but not from MySQL 5.0 to MySQL 5.1.

As a matter of fact, I have MySQL 5.1.30 in a test computer. I run MySQL 5.5 setup WITHOUT previously uninstalling 5.1. Result: both versions are displayed in "Add/Remove Program" applet (and the new server is not using old data, but this is another topic)
Sign Up Login You must be logged in to post a comment.