-
-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate database charset to utf8mb4 (emoji support) and storage engine to InnoDB #4501
Comments
Storage Engine AddendumBecause In fact, I would alias the storage engines in this order of preference:
|
Support the idea, I would save this change for after the v2.3.1 release. |
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
…conversion Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: e107inc#4501
Issue #4501 Migrate database charset to utf8mb4 and storage engine to InnoDB
Hello @Jimmi08 Just to get back the searrch plugin while the plugin is fixed. thanks |
Me too. There are some solutions on google, but they didn't work (or I didn't know how to use them). So I exported the database to file , renamed it and imported back. Or it can be done manually table by table. Online table had this type before. You need to check option Add delete table if exists in export options or reimport to empty/new database. |
@sanslash332 and @Jimmi08: I don't have a solution in code yet, but here are the quick fix queries you can run to repair e107 e_search on InnoDB tables for the core plugins. Note: The queries assume that the table prefix is
|
Ho! thanks @Deltik The solution works like a charm! Well, wait to implement that direct on the page; but for now, the issue is solved if you do manually these commands :-) |
Hi, I have little issue with plugin development on localhost. My wampp doesn't have utf8mb4 charset, it falls back to utf8mb3. When I change SQL file of plugin, update fails. It looks like different checks for plugin update and database tools. Sql file is correct, on live site (with utf8) it works. |
@Jimmi08, do you mean that the behavior of the "Update" button in |
Yes, installing a new plugin is ok too. And only on localhost with wampp - without utfmb4 coding. I have no idea why there is no utfmb4 and the default setting is utfmb3. |
There are some places where the character set and the collation are hard-coded. That's not ideal and would take a fair bit of effort to untangle. |
Motivation
e107 is currently using the obsolete MyISAM storage engine and the undesirable
utf8mb3
character set for all tables by default.Character Set
Many emojis, which are common today, require 4 UTF-8 bytes to store but are not supported by the
utf8mb3
character set because it can only support up to 3 bytes per character.Furthermore, from the MySQL 8.0 documentation about
utf8mb3
:Storage Engine
InnoDB, which became the MySQL 5.5.5 default storage engine in 2010, has multiple important advantages over MyISAM:
e107_user.user_id
ande107_comments.comment_author_id
, so if a user is deleted, there is no way for the comments to handle that, by preventing the user from being deleted, dissociating the comment's author, or deleting the comment as well.Proposed Solution
To get started with modernizing the database storage of e107, I propose the following migrations:
utf8mb3
toutf8mb4
and collateutf8mb4_unicode_ci
.For large databases, we may wish to consider splitting up the migration into these steps:
Additional Context
It seems that if I try to save an emoji in any input field, like a page body or tagline, the emoji and everything after it gets wiped out in the database.
The text was updated successfully, but these errors were encountered: