modxcms / revolution

MODX Revolution - Content Management Framework
https://modx.com/
GNU General Public License v2.0
1.36k stars 529 forks source link

Installer attempts to use InnoDB instead of MyISAM with Server version: 5.5.51-38.2 #13747

Closed wshawn closed 6 years ago

wshawn commented 6 years ago

Sounds like #13680 (MODX 2.61), though from a browser in MODX 3.x

Summary

Setup hangs on database credentials page on clean install on fresh site without error.

Step to reproduce

After entering the correct credentials, switch the MySql to MS SQL and click on the validation link. It will return an expected error. Return the setting to MySql and it will again do nothing. Errors only report on incorrect credentials.

Observed behavior

If a letter from the login name or database name is removed the expected "cannot connect to the database" error is given. If the correct credentials are in place nothing happens.

After clearing cache and selecting all three boxes - especially do not compress js/css. The next page breaks allowing me to move past the database page, which led me to find the issue.

Apparently, it does not switch to MyISAM per Jason's override in the < 5.6 version check. All of the tables are in fact, InnoDB though modx_site_content was skipped due to the full-text index on the table. I manually created the table via phpMyAdmin from a local install and switched it to MyISAM until I coerce the hosting provider to update their software.

Expected behavior

I would have expected errors - anywhere. There were none in the Apache error log, root directory error file, core/cache/logs. etc.

I would also have expected the MyISAM override to kick in.

Errors I received upon reinstall -using above method

[2018-01-29 23:59:49] (ERROR @ /connectors/index.php) Error 42S02 executing statement: 
Array
(
    [0] => 42S02
    [1] => 1146
    [2] => Table 'xxxxx_sexi.modx_site_content' doesn't exist
)

[2018-01-30 00:00:24] (ERROR in xPDO\xPDO::getValue @ /home/xxxxx/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php : 1063) Error 42S02 executing statement: 
Array
(
    [0] => 42S02
    [1] => 1146
    [2] => Table 'xxxxx_yyyyy.modx_site_content' doesn't exist
)

[2018-01-30 00:00:24] (ERROR @ /connectors/index.php) Error 42S02 executing statement:
INSERT INTO `modx_site_content` (`type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`) VALUES ('document', 'text/html', 'home', '', '', 'home', '', 1, 0, 0, 0, 0, '', '', 1, 1, 0, 1, 1, 1, 1517292024, 0, 0, 0, 0, 0, 1517292024, 1, '', 0, 0, 0, 0, 0, 'modDocument', 'web', 1, '', 0, 0, 1)
Array
(
    [0] => 42S02
    [1] => 1146
    [2] => Table 'xxxxx_yyyyy.modx_site_content' doesn't exist
)

Environment

The worlds largest hosting company (I believe) is using a drop in replacement for MySQL:

    MODX version: MODX Revolution 3.0.0-dev (git)
    Server type: Percona Server
    Server version: 5.5.51-38.2 - Percona Server (GPL), Release 38.2, Revision 727
    Protocol version: 10
    Server charset: UTF-8 Unicode (utf8)

Web server
    Database client version: libmysql - 5.1.73

MODX Manager Phpinfo reports:

Database type:     mysql
Database version: 5.5.51-38.2
Database charset: utf8
Database name:   xxxxx_modx3
Database server:  localhost
Table prefix:          modx_
PDO support:      enabled
PDO drivers:        mysql, sqlite
PDO Driver for MySQL:  enabled
Client API version:          5.5.51-38.2
Directive:                       Local Value,Master Value
wshawn commented 6 years ago

I have since left that host and will close this.