anchor.diff:                  if [ $count -eq 30 ]
                   then
                       echo "Tried 30 times, giving up..."
  -	            exit 1
  +                    exit 1
                   fi
   
                   echo "MySQL daemon not yet started. Waiting for 1 second..."
  
positive.code:                 sleep 1
              done
  
  	    if [ -f /tmp/mysql_init ]
  	    then
  	        # Create initial databases
  
                  ${concatMapStrings (database:
                    ''
                      if ! test -e "${cfg.dataDir}/${database.name}"; then
                          echo "Creating initial database: ${database.name}"
                          ( echo "create database ${database.name};"
                            echo "use ${database.name};"
  		          if [ -f "${database.schema}" ]
  		          then
                                cat ${database.schema}
  		          elif [ -d "${database.schema}" ]
  		          then
  		              cat ${database.schema}/mysql-databases/*.sql
  		          fi
  		        ) | ${mysql}/bin/mysql -u root -N
                      fi
                    '') cfg.initialDatabases}
  
  	        # Execute initial script
  
  		${optionalString (cfg.initialScript != null)
  		  ''
  		    cat ${cfg.initialScript} | ${mysql}/bin/mysql -u root -N
  		  ''}
  
  	        # Change root password
  
  		${optionalString (cfg.rootPassword != null)
  		  ''
  		    ( echo "use mysql;"
  		      echo "update user set Password=password('$(cat ${cfg.rootPassword})') where User='root';"
  		      echo "flush privileges;"
  		    ) | ${mysql}/bin/mysql -u root -N
  		  ''}
  
  	      rm /tmp/mysql_init
  	    fi
  	  '';
  
          # !!! Need a postStart script to wait until mysqld is ready to
          # accept connections.
  
  
negative.code:       initialDatabases = mkOption {
          default = [];
          description = "List of database names and their initial schemas that should be used to create databases on the first startup of MySQL";
          example = [
            { name = "foodatabase"; schema = ./foodatabase.sql; }
            { name = "bardatabase"; schema = ./bardatabase.sql; }
          ];
        };
  
        initialScript = mkOption {
          default = null;
          description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
        };
  
        rootPassword = mkOption {
          default = null;
          description = "Path to a file containing the root password, modified on the first startup. Not specifying a root password will leave the root password empty.";
        };
  
        replication = {
          role = mkOption {
            default = "none";
            description = "Role of the MySQL server instance. Can be either: master, slave or none";
          };
  
          serverId = mkOption {
            default = 1;
            description = "Id of the MySQL server instance. This number must be unique for each instance";
          };
  
          masterHost = mkOption {
            description = "Hostname of the MySQL master server";
          };
  
          masterUser = mkOption {
            description = "Username of the MySQL replication user";
          };
  
          masterPassword = mkOption {
            description = "Password of the MySQL replication user";
          };
  
          masterPort = mkOption {
            default = 3306;
            description = "Port number on which the MySQL master server runs";
          };
        };
      };
  
  