Trying to set up emoji - sql errors

Nextcloud version (eg, 12.0.2): 15.0.7
Operating system and version (eg, Ubuntu 17.04): Debian 9
Apache or nginx version (eg, Apache 2.4.25): Server version: Apache/2.4.25 (Debian)
PHP version (eg, 7.1): PHP 7.0.33-0+deb9u3 (cli) (built: Mar 8 2019 10:01:24) ( NTS )
MariaDB version: mariadb Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

The issue you are facing:

When I try to follow tutorial here: https://docs.nextcloud.com/server/15/admin_manual/configuration_database/mysql_4byte_support.html#mariadb-10-2-or-earlier I get this error when trying to do the maintenance repair. Other than this the server seems to work fine.

root@server:/var/www/cloud# sudo -u www-data php occ maintenance:repair
Nextcloud is in maintenance mode - no apps have been loaded

Failed to load repair step for dav: Repair step 'OCA\DAV\Migration\FixBirthdayCalendarComponent' is unknown
Failed to load repair step for dav: Repair step 'OCA\DAV\Migration\CalDAVRemoveEmptyValue' is unknown
Failed to load repair step for dav: Repair step 'OCA\DAV\Migration\BuildCalendarSearchIndex' is unknown
Failed to load repair step for dav: Repair step 'OCA\DAV\Migration\RefreshWebcalJobRegistrar' is unknown
Failed to load repair step for dav: Repair step 'OCA\DAV\Migration\RemoveClassifiedEventActivity' is unknown
Failed to load repair step for encryption: Repair step 'OCA\Encryption\Migration\SetMasterKeyStatus' is unknown
Failed to load repair step for files_sharing: Repair step 'OCA\Files_Sharing\Migration\OwncloudGuestShareType' is unknown
Failed to load repair step for files_sharing: Repair step 'OCA\Files_Sharing\Migration\SetPasswordColumn' is unknown
Failed to load repair step for oauth2: Repair step 'OCA\OAuth2\Migration\SetTokenExpiration' is unknown
Failed to load repair step for twofactor_backupcodes: Repair step 'OCA\TwoFactorBackupCodes\Migration\CheckBackupCodes' is unknown
 - Repair MySQL collation
     - Change row format for oc_addressbooks ...
     - Change collation for oc_addressbooks ...

In AbstractMySQLDriver.php line 115:
                                                                                                   
  An exception occurred while executing 'ALTER TABLE `oc_addressbooks` CONVERT TO CHARACTER SET u  
  tf8mb4 COLLATE utf8mb4_bin;':                                                                    
                                                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key len  
  gth is 767 bytes                                                                                 
                                                                                                   

In PDOStatement.php line 107:
                                                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key len  
  gth is 767 bytes                                                                                 
                                                                                                   

In PDOStatement.php line 105:
                                                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key len  
  gth is 767 bytes                                                                                 
                                                                                                   

maintenance:repair [--include-expensive]

Is this the first time you’ve seen this error? (Y/N): Y

Steps to replicate it:

  1. Setup debian LAMP
  2. Install nextcloud
  3. Follow instructions on link above

The output of your Nextcloud log in Admin > Logging:

[core] Error: Doctrine\DBAL\Exception\DriverException: An exception occurred while executing 'SELECT `uid`, `displayname` FROM `oc_users` `u` LEFT JOIN `oc_preferences` `p` ON (`userid` = `uid`) AND (`appid` = 'settings') AND (`configkey` = 'email') WHERE (`uid`  COLLATE utf8mb4_general_ci LIKE ?) OR (`displayname`  COLLATE utf8mb4_general_ci LIKE ?) OR (`configvalue`  COLLATE utf8mb4_general_ci LIKE ?) ORDER BY `uid_lower` ASC LIMIT 500 OFFSET 500' with params ["%%", "%%", "%%"]:

SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_general_ci' is not valid for CHARACTER SET 'utf8' at <<closure>>

 0. /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 128
    convertException("An exception oc ... '", Doctrine\DBAL\Dr ... ]})
 1. /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 855
    driverExceptionDuringQuery(Doctrine\DBAL\Driver\PDOMySql\Driver {}, Doctrine\DBAL\Dr ... ]}, "SELECT `uid`, ` ... 0", {1: "%%",2: "%%",3: "%%"})
 2. /var/www/cloud/lib/private/DB/Connection.php line 195
    executeQuery("SELECT `uid`, ` ... 0", {1: "%%",2: "%%",3: "%%"}, {1: 2,2: 2,3: 2}, null)
 3. /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php line 206
    executeQuery("SELECT `uid`, ` ... 0", {1: "%%",2: "%%",3: "%%"}, {1: 2,2: 2,3: 2})
 4. /var/www/cloud/lib/private/DB/QueryBuilder/QueryBuilder.php line 214
    execute()
 5. /var/www/cloud/lib/private/User/Database.php line 282
    execute()
 6. /var/www/cloud/lib/private/User/Database.php line 383
    getDisplayNames("", 500, "500")
 7. /var/www/cloud/lib/private/User/Manager.php line 229
    getUsers("", 500, "500")
 8. /var/www/cloud/apps/files/lib/BackgroundJob/ScanFiles.php line 101
    search("", 500, "500")
 9. /var/www/cloud/lib/private/BackgroundJob/Job.php line 61
    run(null)
10. /var/www/cloud/lib/private/BackgroundJob/TimedJob.php line 55
    execute(OC\BackgroundJob\JobList {}, OC\Log {})
11. /var/www/cloud/cron.php line 146
    execute(OC\BackgroundJob\JobList {}, OC\Log {})

GET /cron.php
from OOF at 2019-04-14T16:42:59+00:00
GET /index.php/apps/logreader/poll?lastReqId=OOF
from OOF by USER at 2019-04-14T16:30:25+00:00

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'instanceid' => 'OOF',
  'passwordsalt' => 'OOF',
  'secret' => 'OOF',
  'trusted_domains' => 
  array (
    0 => 'OOF',
  ),
  'datadirectory' => '/var/nextcloud',
  'dbtype' => 'mysql',
  'version' => '15.0.7.0',
  'overwrite.cli.url' => 'OOF',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => 'OOF',
  'installed' => true,
  'mysql.utf8mb4' => true,
  'maintenance' => false,
);

The output of your Apache/nginx/system log in /var/log/____:

[Sun Apr 14 08:43:50.062293 2019] [:error] [pid 6693] [client OOF] PHP Fatal error:  Uncaught PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:105\nStack trace:\n#0 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(105): PDOStatement->execute(NULL)\n#1 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1006): Doctrine\\DBAL\\Driver\\PDOStatement->execute()\n#2 /var/www/cloud/lib/private/DB/Connection.php(216): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#3 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(208): OC\\DB\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#4 /var/www/cloud/lib/private/DB/QueryBuilder/QueryBuilder.php(214): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 /var/www/cloud/lib/private/Lock/DBLockingProvider.php(321): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 [internal function]: OC\\Lock\\DBLocking in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 115
[Sun Apr 14 08:43:50.270666 2019] [:error] [pid 6897] [client OOF] PHP Fatal error:  Uncaught PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:105\nStack trace:\n#0 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(105): PDOStatement->execute(NULL)\n#1 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1006): Doctrine\\DBAL\\Driver\\PDOStatement->execute()\n#2 /var/www/cloud/lib/private/DB/Connection.php(216): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#3 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(208): OC\\DB\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#4 /var/www/cloud/lib/private/DB/QueryBuilder/QueryBuilder.php(214): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 /var/www/cloud/lib/private/Lock/DBLockingProvider.php(321): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 [internal function]: OC\\Lock\\DBLocking in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 115
[Sun Apr 14 09:29:10.479816 2019] [mpm_prefork:notice] [pid 4028] AH00169: caught SIGTERM, shutting down
[Sun Apr 14 09:29:10.941036 2019] [mpm_prefork:notice] [pid 9377] AH00163: Apache/2.4.25 (Debian) OpenSSL/1.0.2r configured -- resuming normal operations
[Sun Apr 14 09:29:10.941061 2019] [core:notice] [pid 9377] AH00094: Command line: '/usr/sbin/apache2'
[Sun Apr 14 09:30:12.351702 2019] [mpm_prefork:notice] [pid 9377] AH00169: caught SIGTERM, shutting down
[Sun Apr 14 09:30:12.610334 2019] [mpm_prefork:notice] [pid 9431] AH00163: Apache/2.4.25 (Debian) OpenSSL/1.0.2r configured -- resuming normal operations
[Sun Apr 14 09:30:12.610394 2019] [core:notice] [pid 9431] AH00094: Command line: '/usr/sbin/apache2'
[Sun Apr 14 10:33:02.763574 2019] [:error] [pid 9440] [client OOF] PHP Fatal error:  Uncaught PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:105\nStack trace:\n#0 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(105): PDOStatement->execute(NULL)\n#1 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1006): Doctrine\\DBAL\\Driver\\PDOStatement->execute()\n#2 /var/www/cloud/lib/private/DB/Connection.php(216): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#3 /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(208): OC\\DB\\Connection->executeUpdate('UPDATE `oc_file...', Array, Array)\n#4 /var/www/cloud/lib/private/DB/QueryBuilder/QueryBuilder.php(214): Doctrine\\DBAL\\Query\\QueryBuilder->execute()\n#5 /var/www/cloud/lib/private/Lock/DBLockingProvider.php(321): OC\\DB\\QueryBuilder\\QueryBuilder->execute()\n#6 [internal function]: OC\\Lock\\DBLocking in /var/www/cloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 115

fixed using: Nextcloud 14 Upgrade - Users database not working properly