Post by ash_sp99 » Sat Jan 22, 2022 1:10 am

Hello All,

I want to know Opencart 2.1x supports the Mysql 8 without any issue.
Pls. don't confuse with PHP 8, I am running PHP 7.3.

My config.php already using a mysqli driver.

New servers don't have the option to installed Mysql 5.7, so looking for your expertise if you have tried.
Those have upgraded can throw light that there will be any noticeable performance improvement is visible?

Thanks in advance.

New member

Posts

Joined
Thu Feb 09, 2017 2:56 am


Post by ash_sp99 » Thu Jan 27, 2022 2:09 am

I tried to upgrade to mysql 8, and got these three issues. Anyone can help me in fixing this, if not this still thanks for reading.

3) Usage of utf8mb3 charset
Warning: The following objects use the utf8mb3 character set. It is
recommended to convert them to use utf8mb4 instead, for improved Unicode
support.
More information:
https://dev.mysql.com/doc/refman/8.0/en ... f8mb3.html

database_cgbasket.address.company - column's default character set: utf8
database_cgbasket.address.company_id - column's default character set: utf8
database_cgbasket.address.tax_id - column's default character set: utf8
database_cgbasket.address.firstname - column's default character set: utf8
database_cgbasket.address.lastname - column's default character set: utf8

16) Zero Date, Datetime, and Timestamp values
Warning: By default zero date/datetime/timestamp values are no longer allowed
in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in
SQL_MODE by default. These modes should be used with strict mode as they will
be merged with strict mode in a future release. If you do not include these
modes in your SQL_MODE setting, you are able to insert
date/datetime/timestamp values that contain zeros. It is strongly advised to
replace zero values with valid ones, as they may not work correctly in the
future.
More information:
https://lefred.be/content/mysql-8-0-and-wrong-dates/

mysqli.php mentioned this - $this->link->query("SET SQL_MODE = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'");

4) New default authentication plugin considerations
Warning: The new default authentication plugin 'caching_sha2_password' offers
more secure password hashing than previously used 'mysql_native_password'
(and consequent improved client connection authentication). However, it also
has compatibility implications that may affect existing MySQL installations.
If your MySQL installation must serve pre-8.0 clients and you encounter
compatibility issues after upgrading, the simplest way to address those
issues is to reconfigure the server to revert to the previous default
authentication plugin (mysql_native_password). For example, use these lines
in the server option file:

[mysqld]
default_authentication_plugin=mysql_native_password

New member

Posts

Joined
Thu Feb 09, 2017 2:56 am


Post by ADD Creative » Thu Jan 27, 2022 6:16 pm

3) The charset shouldn't stop things working, but would offer better support for extended UTF-8 characters. If you did want to use utf8mb4 you would need to make some changes. See https://github.com/opencart/opencart/pull/10202 and https://www.php.net/manual/en/mysqli.set-charset.php.

16) By default MySQL 8 has NO_ZERO_DATE set in sql_mode. You need to set a value for sql_mode that doesn't have NO_ZERO_DATE.

4) As what you posted says, if it's not connecting revert to the previous default.

www.add-creative.co.uk


Expert Member

Posts

Joined
Sat Jan 14, 2012 1:02 am
Location - United Kingdom

Post by thekrotek » Thu Jan 27, 2022 6:38 pm

You can easily fix all these issues yourself, of a big deal. You just need some MySQL and searching skills.

Professional OpenCart extensions, support and custom work.
Contact me via email or Skype by support@thekrotek.com


User avatar
Expert Member

Posts

Joined
Sun Jul 03, 2016 12:24 am


Post by ash_sp99 » Thu Jan 27, 2022 8:54 pm

thekrotek wrote:
Thu Jan 27, 2022 6:38 pm
You can easily fix all these issues yourself, of a big deal. You just need some MySQL and searching skills.
May be that i don't have that's why i posted here. :)

New member

Posts

Joined
Thu Feb 09, 2017 2:56 am


Post by ash_sp99 » Thu Jan 27, 2022 8:57 pm

ADD Creative wrote:
Thu Jan 27, 2022 6:16 pm

16) By default MySQL 8 has NO_ZERO_DATE set in sql_mode. You need to set a value for sql_mode that doesn't have NO_ZERO_DATE.
thanks for answering, can you share how this can be done ?
As i already set this - mysqli.php mentioned this - $this->link->query("SET SQL_MODE = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'");

So, this will work or need to execute the SQL query for the current data.

New member

Posts

Joined
Thu Feb 09, 2017 2:56 am


Post by JNeuhoff » Thu Jan 27, 2022 11:19 pm

As i already set this - mysqli.php mentioned this - $this->link->query("SET SQL_MODE = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'");
That should work.

Export/Import Tool * SpamBot Buster * Unused Images Manager * Instant Option Price Calculator * Number Option * Google Tag Manager * Survey Plus * OpenTwig


User avatar
Guru Member

Posts

Joined
Wed Dec 05, 2007 3:38 am

Who is online

Users browsing this forum: No registered users and 61 guests