mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-27 16:00:59 +01:00
Weaken the guidance recommending that installs enable "STRICT_ALL_TABLES"
Summary: Ref T13404. Enabling "STRICT_ALL_TABLES" is good, but if you don't want to bother it doesn't matter too much. All upstream development has been on "STRICT_ALL_TABLES" for a long time. Test Plan: {F6847839} Maniphest Tasks: T13404 Differential Revision: https://secure.phabricator.com/D20790
This commit is contained in:
parent
caccbb69d2
commit
f16365ed07
1 changed files with 37 additions and 20 deletions
|
@ -50,30 +50,47 @@ final class PhabricatorMySQLSetupCheck extends PhabricatorSetupCheck {
|
|||
if (!in_array('STRICT_ALL_TABLES', $modes)) {
|
||||
$summary = pht(
|
||||
'MySQL is not in strict mode (on host "%s"), but using strict mode '.
|
||||
'is strongly encouraged.',
|
||||
'is recommended.',
|
||||
$host_name);
|
||||
|
||||
$message = pht(
|
||||
"On database host \"%s\", the global %s is not set to %s. ".
|
||||
"It is strongly encouraged that you enable this mode when running ".
|
||||
"Phabricator.\n\n".
|
||||
"By default MySQL will silently ignore some types of errors, which ".
|
||||
"can cause data loss and raise security concerns. Enabling strict ".
|
||||
"mode makes MySQL raise an explicit error instead, and prevents this ".
|
||||
"entire class of problems from doing any damage.\n\n".
|
||||
"You can find more information about this mode (and how to configure ".
|
||||
"it) in the MySQL manual. Usually, it is sufficient to add this to ".
|
||||
"your %s file (in the %s section) and then restart %s:\n\n".
|
||||
"%s\n".
|
||||
"(Note that if you run other applications against the same database, ".
|
||||
"they may not work in strict mode. Be careful about enabling it in ".
|
||||
"these cases.)",
|
||||
'On database host "%s", the global "sql_mode" setting does not '.
|
||||
'include the "STRICT_ALL_TABLES" mode. Enabling this mode is '.
|
||||
'recommended to generally improve how MySQL handles certain errors.'.
|
||||
"\n\n".
|
||||
'Without this mode enabled, MySQL will silently ignore some error '.
|
||||
'conditions, including inserts which attempt to store more data in '.
|
||||
'a column than actually fits. This behavior is usually undesirable '.
|
||||
'and can lead to data corruption (by truncating multibyte characters '.
|
||||
'in the middle), data loss (by discarding the data which does not '.
|
||||
'fit into the column), or security concerns (for example, by '.
|
||||
'truncating keys or credentials).'.
|
||||
"\n\n".
|
||||
'Phabricator is developed and tested in "STRICT_ALL_TABLES" mode so '.
|
||||
'you should normally never encounter these situations, but may run '.
|
||||
'into them if you interact with the database directly, run '.
|
||||
'third-party code, develop extensions, or just encounter a bug in '.
|
||||
'the software.'.
|
||||
"\n\n".
|
||||
'Enabling "STRICT_ALL_TABLES" makes MySQL raise an explicit error '.
|
||||
'if one of these unusual situations does occur. This is a safer '.
|
||||
'behavior and prevents these situations from causing secret, subtle, '.
|
||||
'and potentially serious issues later on.'.
|
||||
"\n\n".
|
||||
'You can find more information about this mode (and how to configure '.
|
||||
'it) in the MySQL manual. Usually, it is sufficient to add this to '.
|
||||
'your "my.cnf" file (in the "[mysqld]" section) and then '.
|
||||
'restart "mysqld":'.
|
||||
"\n\n".
|
||||
'%s'.
|
||||
"\n".
|
||||
'Note that if you run other applications against the same database, '.
|
||||
'they may not work in strict mode.'.
|
||||
"\n\n".
|
||||
'If you can not or do not want to enable "STRICT_ALL_TABLES", you '.
|
||||
'can safely ignore this warning. Phabricator will work correctly '.
|
||||
'with this mode enabled or disabled.',
|
||||
$host_name,
|
||||
phutil_tag('tt', array(), 'sql_mode'),
|
||||
phutil_tag('tt', array(), 'STRICT_ALL_TABLES'),
|
||||
phutil_tag('tt', array(), 'my.cnf'),
|
||||
phutil_tag('tt', array(), '[mysqld]'),
|
||||
phutil_tag('tt', array(), 'mysqld'),
|
||||
phutil_tag('pre', array(), 'sql_mode=STRICT_ALL_TABLES'));
|
||||
|
||||
$this->newIssue('mysql.mode')
|
||||
|
|
Loading…
Reference in a new issue