41

I am looking for solution on how to update mariadb on xampp 32 bit on window system but not found any article on that.I just found this link. Please help me how to update. I want JSON support that's why I am looking for update from V10.1 to V10.2. Or if there is any other way to do this please let me know

Current version is 10.1.19-MariaDB

silentcoder
  • 992
  • 3
  • 9
  • 21
  • You could try this [answer](https://superuser.com/questions/566013/how-can-i-upgrade-the-mysql-version-included-in-xampp), as the last resort you can always reinstall the whole xampp package. – Picard May 17 '17 at 19:26
  • you can modify question title, this question solution also worked for 10.1 to 10.3 – Emtiaz Zahid Dec 13 '18 at 06:40

7 Answers7

118

1 : Shutdown or Quit your XAMPP server from Xampp control panel.
2 : Download the ZIP version of MariaDB
3 : Rename the xampp/mysql folder to mysql_old.
4 : Unzip or Extract the contents of the MariaDB ZIP file into your XAMPP folder.
5 : Rename the MariaDB folder, called something like mariadb-5.5.37-win32, to mysql.
6 : Rename xampp/mysql/data to data_old.
7 : Copy the xampp/mysql_old/data folder to xampp/mysql/.
8 : Copy the xampp/mysql_old/backup folder to xampp/mysql/.
9 : Copy the xampp/mysql_old/scripts folder to xampp/mysql/.
10: Copy mysql_uninstallservice.bat and mysql_installservice.bat from xampp/mysql_old/ into xampp/mysql/.
11 : Copy xampp/mysql_old/bin/my.ini into xampp/mysql/bin.
12 : Edit xampp/mysql/bin/my.ini using a text editor like Notepad. Find skip-federated and add a # in front (to the left) of it to comment out the line if it exists. Save and exit the editor.
13 : Start-up XAMPP.
Note If you can't get mysql to start from Xampp control panel. Add this 'skip-grant-tables' statement anywhere in xampp/mysql/bin/my.ini file
14 : Run xampp/mysql/bin/mysql_upgrade.exe.
15 : Shutdown and restart MariaDB (MySQL).
If still mysql is not started then follow below Note steps(!Important)

Note :mysql error log file: c:\xampp\mysql\bin\mysqld.exe: unknown variable 'innodb_additional_mem_pool_size=2M' like please remove or commented this statement in my.ini file in this path xampp/mysql/bin/my.ini file.

Help from this link.

Sumit
  • 1,702
  • 2
  • 14
  • 20
  • 2
    I'm getting this error `2018-01-02 15:18:28 5216 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'min_value' at position 3 to have type varbinary(255), found type varchar(255). 2018-01-02 15:18:28 5216 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'max_value' at position 4 to have type varbinary(255), found type varchar(255).`. Can't start MySQL in XAMPP. – Larra Jan 02 '18 at 09:00
  • Yes. I followed all the steps. I also followed the note after the 13th step, but I'm still getting the same error. – Larra Jan 02 '18 at 10:07
  • Current version of your maria db(mysql)? – Sumit Jan 02 '18 at 10:45
  • Yes, I also followed both steps. MySQL's version is 15.1. – Larra Jan 02 '18 at 11:57
  • It's now 10.2.11 (MariaDB). – Larra Jan 02 '18 at 12:03
  • This question is related to **Upgrade xampp mariadb version from 10.1.x-MariaDB to 10.2.x-MariaDB**.If you need to upgrade then please download XAMPP latest version and then try these steps. – Sumit Jan 02 '18 at 12:13
  • I have the latest version of XAMPP. Unfortunately, the MariaDB is still 10.1.29 on this latest version so I had to manually upgrade MariaDB. – Larra Jan 02 '18 at 12:24
  • ok..xampp provide mariaDB 10.1.x by default.Now your problem is solved or not? Please comment your mysql latest error log. – Sumit Jan 02 '18 at 12:25
  • `PhpMyAdmin` still showing `10.1.19-MariaDB` under Database Server but with this query `SELECT VERSION();` it is showing `10.2.10-MariaDB`. – Uzair Ali Mar 30 '18 at 19:58
  • @UzairAli follow all the steps correctly, hope your problem will be solved. – Sumit Mar 31 '18 at 02:13
  • @Sumit My problem is already solve I'm just pointing out that phpmyadmin doesn't show `10.2.10-MariaDB` after update so use `SELECT VERSION();` to check proper version – Uzair Ali Apr 02 '18 at 17:00
  • 6
    Worked for me and I needed to do the additional solution that Rana Hussain posted below. Thanks guys. – Ed-AITpro Jun 14 '18 at 23:42
  • 1
    Great guide! It works for me. Only problem is that from now on the xampp control panel doesn't recognize MySQL as running. Any idea how to fix this? – DTV Media Nov 23 '18 at 19:57
  • My problem mysql wasn't starting and there was no errors in the log file. I changed the Maria DB files from win64 to win32 and got it working. – Raja Khoury Feb 14 '19 at 00:29
  • I followed the guide but wasn't able to stop xampp after running mysql_upgrade, then I noticed I downloaded the x64 mariaDB zip folder... I downloaded the x32 version plus copied all the .ini files in xampp/mysql_old (my-huge.ini, my-small.ini) and it worked like a charm. – Jennifer Arias Apr 20 '19 at 21:41
  • This works for me with [this](https://stackoverflow.com/a/48848806/11264760). – Ishaan Feb 24 '20 at 17:19
31

I tried the same solution did not work for me check the error log and based on this i commented out this option because it has been deprecated.

Line number 145 in my.ini file
#innodb_additional_mem_pool_size = 2M

2018-02-17 23:08:47 bf0 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.

It worked for me.

Rana Hussain
  • 489
  • 5
  • 14
  • Yes, I had commented the innodb_additional_mem_pool_size variable in my.ini file after checking the window event log, where I found that no such variable exist. – Hitesh Dec 28 '18 at 07:32
8
  1. Shutdown MySQL in your XAMPP server from Xampp control panel or mysql under Services if it was added.
  2. Download the ZIP version of MariaDB (https://downloads.mariadb.org/) - you may download the winx64.zip if you are also switching to x64 variant of mariadb
  3. Rename the xampp/mysql folder to mysql_old
  4. Unzip or Extract the contents of the MariaDB ZIP file into your XAMPP folder
  5. Rename the MariaDB folder, called something like mariadb-10.3.14-winx64, to mysql
  6. Rename xampp/mysql/data to data_temp
  7. Copy the xampp/mysql_old/data folder to xampp/mysql/
  8. Copy the xampp/mysql_old/backup folder to xampp/mysql/
  9. Copy the xampp/mysql_old/scripts folder to xampp/mysql/
  10. Copy mysql_uninstallservice.bat and mysql_installservice.bat from xampp/mysql_old/ into xampp/mysql/
  11. Copy xampp/mysql_old/bin/my.ini into xampp/mysql/bin
  12. Edit xampp/mysql/bin/my.ini using a text editor like Notepad

Find skip-federated and add a # in front (to the left) of it to comment out the line if it exists

Find innodb_additional_mem_pool_size=2 and add a # in front (to the left) of it to comment out the line if it exists

Add this skip-grant-tables statement anywhere in xampp/mysql/bin/my.ini file Save and exit the editor

  1. Start-up XAMPP
  2. Run xampp/mysql/bin/mysqlcheck --repair --all-databases
  3. Run xampp/mysql/bin/mysql_upgrade.exe
  4. Shutdown and restart MySQL (MariaDB)
edmoncuaft
  • 91
  • 2
  • 4
1

Please follow this process

  1. Clean shutdown
  2. cd C:\xampp\mysql\bin
  3. mysqladmin -uroot shutdown
  4. cd\
  5. Backup mysql
  6. rename C:\xampp\mysql to C:\xampp\mysql_10.4
  7. extract mariadb-10.8.3-winx64.zip (extract here to prevent duplicate folder)
  8. rename mariadb-10.8.3-winx64 to mysql
  9. copy mysql folder from zip to C:\xampp\
  10. Copy the following from mysql_10.4 to mysql
\bin\my.ini
\backup
\data\
\scripts\
\*.*
  1. Start mysql in xampp control panel
  2. cd C:\xampp\mysql\bin
  3. mysqlcheck -uroot --repair --all-databases
  4. mysql_upgrade.exe
  5. stop start mysql in xampp
Rohit Gupta
  • 4,022
  • 20
  • 31
  • 41
SuperMark
  • 11
  • 1
0

This:

Note :mysql error log file: c:\xampp\mysql\bin\mysqld.exe: unknown variable 'innodb_additional_mem_pool_size=2M' like please remove or commented this statement in my.ini file in this path xampp/mysql/bin/my.ini file.

also helped me except that I had the following ERROR message:

2018-03-09 12:14:56 4116 [ERROR] mysqld.exe: Table '.\mysql\user' is marked as crashed and should be repaired 2018-03-09 12:14:56 4116 [Warning] Checking table: '.\mysql\user' 2018-03-09 12:14:56 4116 [ERROR] mysql.user: 1 client is using or hasn't closed the table properly

Thank you.

blurfus
  • 13,485
  • 8
  • 55
  • 61
0

prior to running

mysql_upgrade

do this first

mysqlcheck --repair --all-databases
  • Can you add some more info, for example, how does this fix the issue? – Deiv Mar 27 '19 at 16:26
  • While this code may solve the question, [including an explanation](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply. – Busti Mar 27 '19 at 16:27
0

I generally use a simpler method, which is to install a new version of xampp on a separate computer. Then copy the installed mysql folder over and replace the data folder with the previous version.

Then run "C:\xampp\mysql\bin\mysql_upgrade.exe"

kanine
  • 45
  • 1
  • 6