Wrong version of mySQL
Posted by: hedera (---.lightspeed.sntcca.sbcglobal.net)
Date: September 24, 2013 02:05AM

After buying a new laptop I'm rebuilding my WampServer install. I had an older version of WampServer, but I've just installed WampServer 2.2E 64 bit. My laptop runs Windows 7 Professional 64 bit. I use WampServer to run test versions of web sites I support.

I support 2 web sites which currently run on mySQL 5.0.91. I'd like to be able to install the same version of everything on the WampServer, but it came with mySQL 5.5.24. I looked for add-ons but 5.0.91 isn't available as an add-on, the closest listed is 5.0.88. Is there somewhere I can get 5.0.91? I'm not a mySQL expert so I don't know what the differences are.

Nature bats last.

Options: ReplyQuote
Re: Wrong version of mySQL
Posted by: RiggsFolly (---.as13285.net)
Date: September 24, 2013 02:08AM

HowTo: Install a new version of MySQL into wamp and migrate your data properly.

Please read the whole post before starting this process. Mistakes can cause untold hassle.

Also take a copy of your WHOLE C:\WAMP folder so you can replace it if necessary if something goes wrong.

A backup of your databases is also a good idea.

Assumption: That you are using the default wamp config where all your databses are stored in the mysql.x.y.x\data\ folder.
If thats the case no backup of your databases is necessary, but it would not hurt, just in case.
This should also work if you are using innodb databases, stored in the mysql.x.y.x\data\ folder.

This will take your complete MySQL environment, including users, passwords and privilages so they do not need to be re-created on the new release.

I have tried to keep it simple here using c:\wamp, but you may have wamp on another drive, just change c: to whatever you use.

Before you start read the upgrade notes on the mysql.com site for information on anything you may have to do to your existing data before you start the upgrade.
There should be a page devoted to major upgrades, you will have to read between the lines if you are doing a minor upgrade.

A glance at the changelog is also a good idea as it will give you a clue as to what has changed and how that may effect your SQL and or data.

So here is the process:

1. Download the ZIP version of the mysql you want to run ( not the msi installer, only because I dont know what it may do or assume when it installs )
Suggested source [www.mysql.com]

2. From wamp manager, Stop all services.

3. Go to c:\wamp\bin\mysql\ and create a new folder named appropriately i.e mysql5.5.28

4. Unzip the mysql and copy the contents of the MySQL folder into your newly created folder. Make sure the directory levels are the same as your existing MySQL folder.

5. Copy all the contents of your previous mysql\mysql5.5.10\data folder into the new data folder under your newly created version folder.
Thats EVERYTHING not just your databases, including the ibdata1, ib_logfile0, ib_logfile1 and all the mysql-bin.0000xx files.
We are going to use the recommended mysql-upgrade tool so this is ok to do.
This will also ensure that you keep all your Users and password and granted privilages intact when the upgrade is complete.

6. Copy c:\wamp\bin\mysql\mysql5.5.10\wampserver.conf to c:\wamp\bin\mysql\mysql5.5.28\wampserver.conf
All the folders in here are relative to where this file lives, so normally nothing need changing in here.

7. RIGHT CLICK wampmanager -> refresh
This will make wamp manager find your new version.
Check this by Left click wampmanager -> MySQL -> Versions Your new version should be available in the list.

8. From wamp manager -> MySQL -> Version click on your new version.
Normally you would have to uninstall the old wampmysql service and re-install the new wampmysql service, but wamp takes care of all that for you by just clicking the new version number.
This should also start the new mysql service, so now the new mysql is running.

9. Launch a command window ( using Run As Administrator ).
CD into c:\wamp\bin\mysql\mysql5.5.28\bin folder ( the new releases bin folder ).
And run
mysql_upgrade -u[your MySQL admin userid] -p > upgrade_results.txt

It will ask you for the password for the admin user you provided on the -u parameter.
enter the password.

Wait while it runs, If you have very large databases this may take some time but normally it will take anything from a few seconds to a minute or two.
This will look at your databases and do any upgrades that are required and also any upgrades/maintenace of the mysql database that MySQL uses internally.
Thats the tables that contain your userids and password and privilages and other things.

10. Check for errors in the upgrade_results.txt file, fix if there are any.
You can repeat this as often as you like, just refresh the data from the old versions data folder each time.

11. LEFT Click wamp manager -> MySQL -> Service -> Stop Service.
Then again and Start Service. This will load the changed mysql database with any new/changed config info.

12. At this point assuming you are staying on the newly installed version of MySQL its a good idea to run:
wampmanager -> MySQL -> MySQL Console
and run a
> reset master;

To reset the log files.

Thats it your are ready to go and all your userid's and data are converted to the new MySQL version.


The Beauty of WAMP
If you find you have a problem with one of your databases you can just switch the MySQL Version back to the old version, fix the databases using MySQL Workbench or phpMyAdmin.
The copy all the contents of the data folder into your new release and re-run the mysql_upgrade.exe as many times as it takes to fix your issues.

And of course if it all goes bad in a big way, you can switch the MySQL version back to whatever you were using before and all your data is still there UNTOUCHED.

Now this may seem obvious but I am going so say it anyway:
1. If everything goes smoothly you do have to remember that you now have 2 versions of the same database(s) that are being maintained SEPERATELY.
2. It is not possible to use this process to DOWNGRADE your databases!!!

Options: ReplyQuote
Re: Wrong version of mySQL
Posted by: hedera (---.lightspeed.sntcca.sbcglobal.net)
Date: September 24, 2013 02:44AM

It's actually simpler than you describe. Right now I have NO mysql databases live on the laptop. I was waiting to install test sites until I got the platform built. I'll give your process a try, thanks for the tip. But as I investigated everything, I find that my sites run on slightly different versions of ALL the software, none of which are available as add-ons:

Apache - 2.2.22 ; PHP - 5.3.27; mySQL - 5.0.91

How long does it take to get a new version into the add-on list? And if I have to install everything from scratch myself, why am I bothering with Wampserver? I remember from the older version that I used that every time I needed an alternate version, it was right there. It seems to have become less friendly.

Options: ReplyQuote
Re: Wrong version of mySQL
Posted by: RiggsFolly (---.as13285.net)
Date: September 24, 2013 10:30AM

HowTo: Install a new version of APACHE into WAMP yourself.

This is not intended to replace the wamp addons mechanism of downloading apache version. If the version you require is available as an addon, use that mechanism, its just so easy.

This tutorial is not really for the absolute beginner. It would help if you had a basic knowledge of how apache/php work together and seperately and their individual configuration, as well as an understanding of what wamp is and does for you.

Read all this document before starting any actual attempt to install an apache version.

This guide assumes you are installing a minor version of an apache you already have installed i.e. apache 2.2.x to apache2.2.y.
I will use the versions 2.2.22 and 2.2.23, the tutorial uses these folder names but of course you will probably be installing different versions.

So here is the process:

1. Download the ZIP version of the Apache you want to run ( not the msi installer, only because I dont know what it may do or assume when it installs )
Suggestion only

2. From wamp manager, Stop all services.

3. Go to c:\wamp\bin\apache\ and create a new folder named appropriately for the release you are installing i.e apache.2.2.23

4. Unzip the Apache downloaded and copy the contents of the unzipped apache folder into your newly created folder in the wamp folder structure. apache2.2.23 in this example.
Make sure the directory levels are the same as your existing apache folder i.e. all the folders get unzipped into a folder called something like apache2, just copy all the subfolders to your new folder wamp\bin\apache\apache.2.2.23 folder. I suggest you unzip it somewhere else and then copy that to the wamp folder.

5. Copy c:\wamp\bin\apache\apache2.2.22\wampserver.conf to c:\wamp\bin\apache\apache2.2.23\wampserver.conf
All the folders in here are relative to where this file lives, so normally nothing need changing in here.
Wamp will not see your new install properly if you forget this step.

6. Now you need to bring your existing httpd.conf file from your current instance of apache.

Be carefull here, things change in the httpd.conf file, parameters get deprecated, new ones get created etc. So use the new httpd.conf as the master and only move over parameters you know you have changed for your actual requirements.

First make a backup of the new wamp\bin\apache\apache2.2.23\httpd.conf as wamp\bin\apache\apache2.2.23\httpd.original.conf ( for example )

Now this new httpd.conf file assumes the location of Apache is the default i.e. c:\apache\....
So there are parameter in YOUR NEW httpd.conf file that MUST BE CHECKED against your old WAMP oriented one
Some but maybe not all are listed here:-

<Directory....> Check all the directory parameters match the wamp file structure
DirectoryIndex Add index.php to this list

Now we must configure apache to use the correct version of PHP.
Wamp default is to runs PHP as an apache handler, that means apache loads the PHP interpreter as an apache module. ( see below )
Remember the Apache conf does not assume you are a PHP user so you will have to add this to the new conf file rather than change it.
So you must also check you are loading the correct handler for the version of apache and PHP you want to use.
The PHP folder should contain 1 or more of these handlers ( dll's ) depending on which versions of php it has been compiled for ( not all php version will run with all apache's ).
You must load the correct dll to match the apache version and the php version you want to use.

Ok I am afraid we need a bit of Techy Stuff here.
When PHP is compiled, by cleverer people than us! It is actually compiled more than once for various situations.
If you look in the php/phpx.y.z folder you will see a php.exe, php-win.exe, php-cgi.exe, all of which are irrelivant in the context of this document.

You will also see one or more dll files with names like php5apache2.dll, php5apache2_2.dll, php5apache2_4.dll, again depending on which apache you have download.
These are the php interpreter compiled into a dll for use as an apache handler.
The version of apache that this php is comiled to run with, is denoted by the apache2 (apache 2.0 or 2.1) or apache2_2 (apache 2.2 or 2.3) or apache2_4 ( apache 2.4 ) part of the filename.
The php5 part denotes it is a version of php5 ( but does not tell you which version of php5 ).
The version of php is denoted by the fact that you downloaded php5.3.13 and have luckily loaded it into a folder called php5.3.13 so you know whats what.

If you are using PHP 5.4 with an apache 2.4.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.4.x/php5apache2_4.dll" for using PHP 5.4

If you are using PHP 5.2 or PHP 5.3 with an apache 2.2.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.2.x/php5apache2_2.dll"

If you want to use PHP with an apache 2.0.x or 2.1.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.1.x/php5apache2.dll" for using PHP

This parameter is in the httpd.conf but is loading a file from a PHP folder.

If the php version folder does not contain a handler that matches apache version you want to run then that version of php wont run with that version of apache or your php download has not been compiled for that version of apache, normally the former.

Armed with this information you should be able to find the correct handler for the version of apache and php that you want to run together.

7. If you are using Virtual Servers you will also need to copy the conf\extras\httpd-vhosts.conf file from your old Apache version folder to your new folder.

8. We should be nearly done, so
Right click wampmanager -> refresh

This will tell wamp manager to re-configure itself and go look for anything new in its folder structure i.e. your new apache.
Check it has worked by: left click wampmanager -> Apache -> Versions, you should see your new one appear in the list.

8. Now Left click wamp manager -> Apache -> Versions -> and click your new version numbers to activate the new version of Apache.
This will restart apache and run your new version.

If apache fails to start ( wamp manager stays orange ) either you or I have missed a step. I hope its you!

If you make a mistake check the apache error log for clues, or the windows event viewer, apache writes errors to this as well as its error log.

If all else fails, delete the new apache.x.y.z folder and re run the Right click on wamp manager -> Refresh and it will re configure itself without your new apache and you can start again.


Before you start

On Apache and PHP you will see the acronyms VC6, VC9, VC10 or VC11. This denotes the compiler version used to compile that program or dll.
Unfortunately you cannot mix the two when it comes to Apache and PHP, although some docuentation suggestst that VC10 and VC11 are compatible with each other, I make no guarantee of this.
So first you must find out which compiler was used to compile the Apache you are currently using, so you can get the PHP that was compiled with the same version of the compiler.
As time goes on this becomes more complicated as newer versions of PHP are not being compiled and linked with older versions of the compilers. VC6 seems to have been dropped a little while ago. So if you want to use a new PHP you will probably have to upgrade your version of Apache as well so you have a version that is compiled with at least VC9

The way PHP and Apache interact in the default WAMPServer install is that Apache launches the PHP Interpereter as a dll (php5apachex_y.dll) as this is a very close relationship i.e. not communication via a TCP port like PHP and MySQL, so they both have to have been compiled using the same version of Microsoft Visual C Compiler.

1. From WampManager "Stop All Services".

2. Download the PHP Release you want to install from www.php.net/download
You should use the Thread Safe build.
Make sure its built with the same compiler versions as you Apache ( VC6 or VC9 )

3. Create a new folder under c:\wamp\bin\php\ with the name = the version you are installing
So, for example, make a folder called php5.5.11.

4. Now from the folder containing your most recent ( and working ) verions of PHP copy the file called wampserver.conf and paste it into your new PHP folder created in the previous setp.
This file is required by wamp server to properly identify that this is a valid PHP version folder.
The file contains references to the names of the dll files that contain the PHP interpreter, so that the correct file can be copied to the Apache folder when you activate this new version of the PHP interpreter.

The file should look like this, if you are moving from a very old version of PHP you may need to add some new sections from here to your file.


$phpConf['phpIniDir'] = '.';
$phpConf['phpExeDir'] = '.';
$phpConf['phpConfFile'] = 'php.ini';

$phpConf['apache']['1.3']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['1.3']['LoadModuleFile'] = 'php5apache.dll';
$phpConf['apache']['1.3']['AddModule'] =  'mod_php5.c';

$phpConf['apache']['2.0']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.0']['LoadModuleFile'] = 'php5apache2.dll';
$phpConf['apache']['2.0']['AddModule'] =  '';

$phpConf['apache']['2.2']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.2']['LoadModuleFile'] = 'php5apache2_2.dll';
$phpConf['apache']['2.2']['AddModule'] =  '';

$phpConf['apache']['2.4']['LoadModuleName'] = 'php5_module';
$phpConf['apache']['2.4']['LoadModuleFile'] = 'php5apache2_4.dll';
$phpConf['apache']['2.4']['AddModule'] =  '';


5. Now unzip the downloaded PHP into your new folder, make sure the folder hierarchy looks like this.

6. Now in your new folder copy the file php.ini_development into a new file called php.ini

Do the same again but paste into a file called phpForApache.ini
You should now have the original file called php.ini_development PLUS 2 more, one called php.ini and one called phpForApache.ini

The php.ini file is used if you are using the PHP CLI i.e. running php from the command line > php script.php
The phpForApache.ini is the php config used by Apache. This file is copied into the currently active Apache's folder and renamed to php.ini by WAMPmaneger when you activate this version of PHP.

It should look something like this:

7. We must now make some change to the php.ini files to WAMPise them.
Edit the newly created phpForApache.ini file

Search for extension_dir and change to
extension_dir = "d:/wamp/bin/php/phpx.y.z/ext/" <- where x,y,z match the folder you are putting the new PHP into.

Search for ;error_log = php_errors.log and change to
error_log = c:\wamp\logs\php_errors.log
Search for anything 'php/' and make sure you change it to you c:\wamp\bin\php\php.x.y.z folder name.

As of PHP5.4 the timezone need to be set
Search for [Date] and put an entry into the date.timezone field as a minimum

date.timezone = "Europe/London"
date.default_latitude = 0.0
date.default_longitude = 51.502973

look here for a list of supported timezone values [www.php.net]

PHP5.5 specific changes
a. All the PHP extensions are commented out, so you need to manually uncomment at least some of them
Check your last used php.ini to see what you need, remember some extensions may have been included in the core of php so you may need to check the php change log for details.

Now there may well be other configuration changes you had made to your existing PHP, these you will have to find and transfer yourself.
I suggest you compare your last \wamp\bin\apache\apachex.y.z\bin\php.ini with this new one and move over anything you believe is relevant.

DONT FORGET, if you are using th PHP CLI you will also need to do this to the php.ini file as well.

8. Make sure all services are stopped in wampmanager, and then right click over the wamp manager icon in the system tray and select the 'refresh' menu item.
When you left click on wamp manager -> PHP -> Version you should see your new version in the list.

If the new version does not appear, then you have probably spelt the phpForApache.ini file name wrong. Correct it and redo the 'refresh'.

9. You can now 'restart all services' from the wamp manager menus.

NOTE: You have not actually changed anything yet, so if wamp,Apache,PHP etc were working before they still should be.

10. Activate your new PHP version.
Using the wamp manager menus again you just need to click on the new version number to activate it.
wamp manager -> PHP -> Version -> 5.5.11 ( <- or whatever the version number is you have just added )

This will cause wamp manager to stop Apache ( the icon will go Orange )
Copy the correct files from the PHP folder to the Apache folder
php5apachex_y.dll, the php interpreter dll used by Apache
phpForApache.ini the php config file

And then restart Apache. So the wamp manager icon should go GREEN again.

If the wamp manager icon stays ORANGE, then you have missed something, probably a file name spelt wrong. The phpForApache.ini file must exists.

11. Now run localhost from the wamp manager menu, and check the wamp server home page. It should tell you which version of PHP is loaded.

If it all goes wrong when you activate the new PHP, you can easily back out of trouble by just activating whatever version of PHP you were using before, and then going back to see what you did wrong.


Ioncube for PHP5.5 is not yet released as of 13/09/2013, they say they are waiting for PHP 5.5 to become stable and secure and hosting providers to adopt PHP 5.5 before they release their upgrade. They comment that it can take a year or more for hosting companies to adopt new versions of PHP and this I guess is their schedule.

You must ensure that you download the correct version to match your PHP :-
compiler( VC6/VC9 etc ) compiled ionCube dll
correct 32 or 64 bit code
and the Thread Safe version which is the one that is not NON-TS

1. Download the correct ionCube loader from [www.ioncube.com]
2. Place it somewhere on your disk, but not in the WAMP folder.
for example c:\webstuff\ioncube\vc9\
2. Edit the new php.ini Using the wamp manager menus
Add these 2 lines at the bottom of the file.
Remeber the version you load will depend upon which MAJOR version of PHP you are using i.e. 5.2,5.3 or 5.4

Ioncube for PHP5.5 is not yet released as of 13/09/2013, they say they are waiting for PHP 5.5 to become stable and secure and hosting providers to adopt PHP 5.5 before they release their upgrade. They comment that it can take a year or more for hosting companies to adopt new versions of PHP and this I guess is their schedule.

;ioncube Extension
zend_extension = "c:/webstuff/ioncube/vc9/ioncube_loader_win_5.3.dll"

XDEBUG comes with WAMP Server and is incredibly useful for debugging CLI or WEB scripts.
But it does not come with the PHP you have downloaded from the PHP website.
When upgrading PHP to a major version release you may need to get an up to date version of xdebug from
For a minor version upgrade you can probably use the existing xdebug version you already have on disk.

So for a minor PHP version upgrade, copy the folder c:\wamp\bin\php\php5.y.z\zend_ext from your old PHP to your new php folder.
For a major PHP version upgrade get a new dll from the xdebug website and put it in a newly created folder called c:\wamp\bin\php\php5.y.z\zend_ext

Now add a line like this ( version specific of course ) to your php.ini ( using the wamp manager menus, to ensure you are editing the correct file )

;XDEBUG Extension
zend_extension = "d:/wamp/bin/php/phpx.y.z/zend_ext/php_xdebug-2.2.2-5.3-vc9.dll"

xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "d:/wamp/tmp"

Options: ReplyQuote

Sorry, only registered users may post in this forum.