I was hoping that someone had a sql script that would initialize the database.
Steps to reproduce
- I created a docker compose with a remote mariadb server as the target for mysql here:
version: ‘2.1’
volumes: files: driver: local # mysql: # driver: local backup: driver: local redis: driver: local services: owncloud: image: owncloud/server:${OWNCLOUD_VERSION} restart: always ports: - ${HTTP_PORT}:8080 depends_on: # - db - redis environment: - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN} - OWNCLOUD_DB_TYPE=mysql - OWNCLOUD_DB_NAME=owncloud - OWNCLOUD_DB_USERNAME=owncloud - OWNCLOUD_DB_PASSWORD=owncloud - OWNCLOUD_DB_HOST=192.168.1.8 - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME} - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD} - OWNCLOUD_MYSQL_UTF8MB4=true - OWNCLOUD_REDIS_ENABLED=true - OWNCLOUD_REDIS_HOST=redis healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 volumes: - files:/mnt/data # db: # image: webhippie/mariadb:latest # restart: always # environment: # - MARIADB_ROOT_PASSWORD=owncloud # - MARIADB_USERNAME=owncloud # - MARIADB_PASSWORD=owncloud # - MARIADB_DATABASE=owncloud # - MARIADB_MAX_ALLOWED_PACKET=128M # - MARIADB_INNODB_LOG_FILE_SIZE=64M # healthcheck: # test: ["CMD", "/usr/bin/healthcheck"] # interval: 30s # timeout: 10s # retries: 5 # volumes: # - mysql:/var/lib/mysql # - backup:/var/lib/backup redis: image: webhippie/redis:latest restart: always environment: - REDIS_DATABASES=1 healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 volumes: - redis:/var/lib/redis
- I setup a mariadb that I can access remotely. In fact the error message suggests that it is accessing the DB and failing to find the first table. You can see the output here:
owncloud_1 | Waiting for MySQL…
owncloud_1 | services are ready!
owncloud_1 | Waiting for Redis…
owncloud_1 | services are ready!
owncloud_1 | Writing config file…
owncloud_1 | Fixing base perms…
owncloud_1 | Fixing data perms…
owncloud_1 | Fixing hook perms…
owncloud_1 | Upgrading server database…
owncloud_1 | An unhandled exception has been thrown:
owncloud_1 | PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘owncloud.oc_appconfig’ doesn’t exist in /var/www/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:88
owncloud_1 | Stack trace:
owncloud_1 | #0 /var/www/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(88): PDO->query(‘SELECT * FROM...') owncloud_1 | #1 /var/www/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(910): Doctrine\DBAL\Driver\PDOConnection->query('SELECT * FROM
…’)
owncloud_1 | #2 /var/www/owncloud/lib/private/DB/Connection.php(187): Doctrine\DBAL\Connection->executeQuery(‘SELECT * FROM...', Array, Array, NULL) owncloud_1 | #3 /var/www/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(200): OC\DB\Connection->executeQuery('SELECT * FROM
…’, Array, Array)
owncloud_1 | #4 /var/www/owncloud/lib/private/DB/QueryBuilder/QueryBuilder.php(141): Doctrine\DBAL\Query\QueryBuilder->execute()
owncloud_1 | #5 /var/www/owncloud/lib/private/AppConfig.php(301): OC\DB\QueryBuilder\QueryBuilder->execute()
owncloud_1 | #6 /var/www/owncloud/lib/private/AppConfig.php(80): OC\AppConfig->loadConfigValues()
owncloud_1 | #7 /var/www/owncloud/lib/private/AppConfig.php(278): OC\AppConfig->getApps()
owncloud_1 | #8 /var/www/owncloud/lib/private/legacy/app.php(948): OC\AppConfig->getValues(false, ‘installed_versi…’)
owncloud_1 | #9 /var/www/owncloud/lib/private/Server.php(438): OC_App::getAppVersions()
owncloud_1 | #10 /var/www/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC{closure}(Object(OC\Server))
owncloud_1 | #11 /var/www/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet(‘MemCacheFactory’)
owncloud_1 | #12 /var/www/owncloud/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query(‘MemCacheFactory’)
owncloud_1 | #13 /var/www/owncloud/lib/private/Server.php(1202): OC\ServerContainer->query(‘MemCacheFactory’)
owncloud_1 | #14 /var/www/owncloud/lib/private/Server.php(597): OC\Server->getMemCacheFactory()
owncloud_1 | #15 /var/www/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC{closure}(Object(OC\Server))
owncloud_1 | #16 /var/www/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet(‘AppManager’)
owncloud_1 | #17 /var/www/owncloud/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query(‘AppManager’)
owncloud_1 | #18 /var/www/owncloud/lib/private/Server.php(1418): OC\ServerContainer->query(‘AppManager’)
owncloud_1 | #19 /var/www/owncloud/lib/private/legacy/app.php(343): OC\Server->getAppManager()
owncloud_1 | #20 /var/www/owncloud/lib/private/legacy/app.php(107): OC_App::getEnabledApps()
owncloud_1 | #21 /var/www/owncloud/lib/base.php(585): OC_App::loadApps(Array)
owncloud_1 | #22 /var/www/owncloud/lib/base.php(1058): OC::init()
owncloud_1 | #23 /var/www/owncloud/console.php(74): require_once(’/var/www/ownclo…’)
owncloud_1 | #24 /var/www/owncloud/occ(11): require_once(’/var/www/ownclo…’)
owncloud_1 | #25 {main}
Expected behaviour
I expect that given that I have given access to the DB with no owncloud database that owncloud would recognize and install itself on the DB.
Actual behaviour
Instead it seemed to check for tables and database then error out when they were not present.
Server configuration
Operating system: PopOS 19.04 (Debian / Ubuntu)
Web server: I left the images for Owncloud and Redis the same as the latest.
Database: Mariadb 5.5.29-standard
PHP version: Owncloud latest
ownCloud version: (see ownCloud admin page) Latest
Updated from an older ownCloud or fresh install: Fresh Install
Where did you install ownCloud from: From Docker Hub
Signing status (ownCloud 9.0 and above): Not sure
Login as admin user into your ownCloud and access
http://example.com/index.php/settings/integrity/failed
paste the results into https://gist.github.com/ and puth the link here.
The content of config/config.php:
Latest standard config
Log in to the web-UI with an administrator account and click on
'admin' -> 'Generate Config Report' -> 'Download ownCloud config report'
This report includes the config.php settings, the list of activated apps
and other details in a well sanitized form.
or
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your ownCloud installation folder
*ATTENTION:* Do not post your config.php file in public as is. Please use one of the above
methods whenever possible. Both, the generated reports from the web-ui and from occ config:list
consistently remove sensitive data. You still may want to review the report before sending.
If done manually then it is critical for your own privacy to dilligently
remove *all* host names, passwords, usernames, salts and other credentials before posting.
You should assume that attackers find such information and will use them against your systems.
List of activated apps:
No apps yet
If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your ownCloud installation folder.
Are you using external storage, if yes which one: local/smb/sftp/…
Trying just a straight connection to Mariadb
Are you using encryption: yes/no
No
Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/…
No