0

This is a long shot I'm sure, but I converted a Processwire site backup database from MyISAM files to SQL via RebaseData's PHP API and am getting this response attempting to access the site now:

Fatal error: Exception: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'boo_pw.pages.parent_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (in /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php line 390) #0 /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php(390): PDOStatement->execute() #1 /Users/boo/WWW/booa/wire/core/PagesLoader.php(600): ProcessWire\WireDatabasePDO->execute(Object(PDOStatement)) #2 /Users/boo/WWW/booa/wire/core/Pages.php(154): ProcessWire\PagesLoader->getById(Array) #3 /Users/boo/WWW/booa/wire/core/ProcessWire.php(335): ProcessWire\Pages->init() #4 /Users/boo/WWW/booa/wire/core/ProcessWire.php(295): ProcessWire\ProcessWire->initVar('pages', Object(ProcessWire\Pages)) #5 /Users/boo/WWW/booa/wire/core/ProcessWire.php(118): ProcessWire\ProcessWire->load(Object(ProcessWire\Config)) #6 /Users/boo/WWW/booa/index.php(52): ProcessWire\ProcessWire->__const in /Users/boo/WWW/booa/index.php on line 64
Error: Exception: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'boo_pw.pages.parent_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (in /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php line 390)

#0 /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php(390): PDOStatement->execute()
#1 /Users/boo/WWW/booa/wire/core/PagesLoader.php(600): ProcessWire\WireDatabasePDO->execute(Object(PDOStatement))
#2 /Users/boo/WWW/booa/wire/core/Pages.php(154): ProcessWire\PagesLoader->getById(Array)
#3 /Users/boo/WWW/booa/wire/core/ProcessWire.php(335): ProcessWire\Pages->init()
#4 /Users/boo/WWW/booa/wire/core/ProcessWire.php(295): ProcessWire\ProcessWire->initVar('pages', Object(ProcessWire\Pages))
#5 /Users/boo/WWW/booa/wire/core/ProcessWire.php(118): ProcessWire\ProcessWire->load(Object(ProcessWire\Config))
#6 /Users/boo/WWW/booa/index.php(52): ProcessWire\ProcessWire->__const

This error message was shown because: site is in debug mode. ($config->debug = true; => /site/config.php). Error has been logged.

Can anyone tell me what this means?

Now on nginx, via Laravel Valet..... if that's relevant. Not sure of the previous MySQL version I was using, but I just installed it fresh here.

I ran SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); and now get:

User Error

Exception: Template 'home' is used by the homepage and thus must manage access (in /Users/boo/WWW/booa/wire/core/Templates.php line 143)

#0 [internal function]: ProcessWire\Templates->___save(Object(ProcessWire\Template))
#1 /Users/boo/WWW/booa/wire/core/Wire.php(347): call_user_func_array(Array, Array)
#2 /Users/boo/WWW/booa/wire/core/WireHooks.php(548): ProcessWire\Wire->_callMethod('___save', Array)
#3 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Templates), 'save', Array)
#4 /Users/boo/WWW/booa/wire/core/Template.php(753): ProcessWire\Wire->__call('save', Array)
#5 /Users/boo/WWW/booa/wire/core/Template.php(810): ProcessWire\Template->save()
#6 /Users/boo/WWW/booa/wire/core/WireHooks.php(619): ProcessWire\Template->hookFinished(Object(ProcessWire\HookEvent))
#7 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessWire), 'finished', Array)
#8 /Users/boo/WWW/booa/wire/core/ProcessWire.php(460): ProcessWire\Wire->__call('finished', Array)
#9 /Users/boo/WWW/booa/wire/core/ProcessWire.php(365): ProcessWire\ProcessWire->__call('finished', Array)
#10 /Users/boo/WWW/booa/wire/modules/Process/ProcessPageView.module(253): ProcessWire\ProcessWire->setStatus(16)
#11 [internal function]: ProcessWire\ProcessPageView->___finished()
#12 /Users/boo/WWW/booa/wire/core/Wire.php(347): call_user_func_array(Array, Array)
#13 /Users/boo/WWW/booa/wire/core/WireHooks.php(548): ProcessWire\Wire->_callMethod('___finished', Array)
#14 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessPageView), 'finished', Array)
#15 /Users/boo/WWW/booa/index.php(56): ProcessWire\Wire->__call('finished', Array)
#16 /Users/boo/.composer/vendor/laravel/valet/server.php(158): require('/Users/boo/WWW/m...')
#17 {main} search►
Source file
File: /Users/boo/WWW/booa/index.php:64

54:        $wire->wire('process', $process); 
55:        echo $process->execute($config->internal);
56:        $config->internal ? $process->finished() : extract($wire->wire('all')->getArray());
57:        
58:    } catch(\Exception $e) {
59:        // Formulate error message and send to the error handler
60:        if($process) $process->failed($e);
61:        $wire ? $wire->trackException($e) : $config->trackException($e);
62:        $errorMessage = "Exception: " . $e->getMessage() . " (in " . $e->getFile() . " line " . $e->getLine() . ")";
63:        if($config->debug || ($wire && $wire->user && $wire->user->isSuperuser())) $errorMessage .= "\n\n" . $e->getTraceAsString();
64:        trigger_error($errorMessage, E_USER_ERROR);
65:    }
66:    
67:    
Call stack
/Users/boo/WWW/booa/index.php:64 source  trigger_error(arguments)

/Users/boo/.composer/vendor/laravel/valet/server.php:158 source  require(arguments)

Another site I tried migrating as well with a near-empty [ProcessWire] database that was previously returning

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Error has been logged.

is now returning 404 Not Found on top of that.

user163831
  • 1,031
  • 3
  • 13
  • 25
  • `SELECT list is not in GROUP BY clause and contains nonaggregated column 'boo_pw.pages.parent_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by`, likely due to differing versions of the DB software check out this answer https://stackoverflow.com/a/35729681/1376624 – Wesley Smith Feb 21 '20 at 04:33
  • Does this answer your question? [Error related to only\_full\_group\_by when executing a query in MySql](https://stackoverflow.com/questions/34115174/error-related-to-only-full-group-by-when-executing-a-query-in-mysql) – Wesley Smith Feb 21 '20 at 04:33

1 Answers1

0

ProcessWire requires removal of MySQL's ONLY_FULL_GROUP_BY setting: https://github.com/processwire/processwire/blob/649d2569abc10bac43e98ca98db474dd3d6603ca/wire/config.php#L975

but it looks like you have already taken care of that.

This (https://processwire.com/talk/topic/19585-solved-error-message-acces-home-template/) might take of the template home exception you are getting.

adrian
  • 111
  • 3
  • 11