dizda / CloudBackupBundle

Be able to backup your database(s) and upload it to the cloud (Dropbox, Amazon S3, GoogleDrive, etc.)
MIT License
196 stars 57 forks source link

mysqldump: Error while setting value ''3306'' to 'port' #70

Closed fkubis closed 8 years ago

fkubis commented 8 years ago

Hi,

i follwed the install instructions. At first try I get:

$ php app/console dizda:backup:start -vvv
- Dumping MySQL database...

  [RuntimeException]
  Unknown suffix ''' used for variable 'port' (value ''3306'')
  mysqldump: Error while setting value ''3306'' to 'port'

Exception trace:
 () at G:\Projekte\PHP\dawei\vendor\dizda\cloud-backup-bundle\Dizda\CloudBackupBundle\Databases\BaseDatabase.php:46
 Dizda\CloudBackupBundle\Databases\BaseDatabase->execute() at G:\Projekte\PHP\dawei\vendor\dizda\cloud-backup-bundle\Dizda\CloudBackupBundle\Database
\MySQL.php:57
 Dizda\CloudBackupBundle\Databases\MySQL->dump() at G:\Projekte\PHP\dawei\vendor\dizda\cloud-backup-bundle\Dizda\CloudBackupBundle\Command\BackupComm
nd.php:87
 Dizda\CloudBackupBundle\Command\BackupCommand->execute() at G:\Projekte\PHP\dawei\vendor\symfony\symfony\src\Symfony\Component\Console\Command\Comma
d.php:257
 Symfony\Component\Console\Command\Command->run() at G:\Projekte\PHP\dawei\vendor\symfony\symfony\src\Symfony\Component\Console\Application.php:882
 Symfony\Component\Console\Application->doRunCommand() at G:\Projekte\PHP\dawei\vendor\symfony\symfony\src\Symfony\Component\Console\Application.php:
95
 Symfony\Component\Console\Application->doRun() at G:\Projekte\PHP\dawei\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Console\Applicatio
.php:96
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at G:\Projekte\PHP\dawei\vendor\symfony\symfony\src\Symfony\Component\Console\Applicatio
.php:126
 Symfony\Component\Console\Application->run() at G:\Projekte\PHP\dawei\app\console:27

dizda:backup:start [-F|--folders] [processor]

My settings:

dizda_cloud_backup:
    output_file_prefix: backup
    timeout: 300
    processor:
        type: tar # Required: tar|zip|7z
        options:
            compression_ratio: 6
            password: %backup_archive_password%
            # Split into many files of `split_size` bytes
            split:
                enable: false # Default false
                split_size: 1000 # Make each zip files no larger than "split_size" in bytes
                storages: [ Dropbox ] # Which cloud storages will upload split files
    folders: [ uploads  ]
    cloud_storages:
        # Dropbox account credentials (use parameters in config.yml and store real values in prameters.yml)
        dropbox:
            user:        %backup_dropbox_user%
            password:    %backup_dropbox_password%
            remote_path: %backup_dropbox_remote_path%
    databases:
        mysql:
            all_databases: false # Only required when no database is set
            database:      %database_name%
            db_host:       %database_host%
            db_port:       %database_port%
            db_user:       %database_user%
            db_password:   %database_password%
parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: 3306
    database_name: develop
    database_user: secret
    database_password: secret

    backup_archive_password: secret
    backup_dropbox_user: secret
    backup_dropbox_password: secret
    backup_dropbox_remote_path: /

Maybe its couse Iam using windows?

dizda commented 8 years ago

Hello @fkubis,

Try to change this line https://github.com/dizda/CloudBackupBundle/blob/master/Database/MySQL.php#L45

with

$this->auth = sprintf("--host='%s' --port=%d --user='%s' --password='%s'", $params['db_host'], $params['db_port'], $params['db_user'], $params['db_password']);

Can you tell me if this fix the problem? Thanks :-)

fkubis commented 8 years ago

Hello @dizda

this fix not the problem at all.

$this->auth = sprintf("--host=%s --port=%d --user=%s --password=%s", $params['db_host'], $params['db_port'], $params['db_user'], $params['db_password']);

did it for me.