:doc:`Lightsail <../../lightsail>` / Client / create_relational_database

**************************
create_relational_database
**************************



.. py:method:: Lightsail.Client.create_relational_database(**kwargs)

  

  Creates a new database in Amazon Lightsail.

   

  The ``create relational database`` operation supports tag-based access control via request tags. For more information, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-controlling-access-using-tags>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateRelationalDatabase>`_  


  **Request Syntax**
  ::

    response = client.create_relational_database(
        relationalDatabaseName='string',
        availabilityZone='string',
        relationalDatabaseBlueprintId='string',
        relationalDatabaseBundleId='string',
        masterDatabaseName='string',
        masterUsername='string',
        masterUserPassword='string',
        preferredBackupWindow='string',
        preferredMaintenanceWindow='string',
        publiclyAccessible=True|False,
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    )
    
  :type relationalDatabaseName: string
  :param relationalDatabaseName: **[REQUIRED]** 

    The name to use for your new Lightsail database resource.

     

    Constraints:

     

    
    * Must contain from 2 to 255 alphanumeric characters, or hyphens.
     
    * The first and last character must be a letter or number.
    

    

  
  :type availabilityZone: string
  :param availabilityZone: 

    The Availability Zone in which to create your new database. Use the ``us-east-2a`` case-sensitive format.

     

    You can get a list of Availability Zones by using the ``get regions`` operation. Be sure to add the ``include relational database Availability Zones`` parameter to your request.

    

  
  :type relationalDatabaseBlueprintId: string
  :param relationalDatabaseBlueprintId: **[REQUIRED]** 

    The blueprint ID for your new database. A blueprint describes the major engine version of a database.

     

    You can get a list of database blueprints IDs by using the ``get relational database blueprints`` operation.

    

  
  :type relationalDatabaseBundleId: string
  :param relationalDatabaseBundleId: **[REQUIRED]** 

    The bundle ID for your new database. A bundle describes the performance specifications for your database.

     

    You can get a list of database bundle IDs by using the ``get relational database bundles`` operation.

    

  
  :type masterDatabaseName: string
  :param masterDatabaseName: **[REQUIRED]** 

    The meaning of this parameter differs according to the database engine you use.

     

    **MySQL**

     

    The name of the database to create when the Lightsail database resource is created. If this parameter isn't specified, no database is created in the database resource.

     

    Constraints:

     

    
    * Must contain 1 to 64 letters or numbers.
     
    * Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0- 9).
     
    * Can't be a word reserved by the specified database engine. For more information about reserved words in MySQL, see the Keywords and Reserved Words articles for `MySQL 5.6 <https://dev.mysql.com/doc/refman/5.6/en/keywords.html>`__, `MySQL 5.7 <https://dev.mysql.com/doc/refman/5.7/en/keywords.html>`__, and `MySQL 8.0 <https://dev.mysql.com/doc/refman/8.0/en/keywords.html>`__.
    

     

    **PostgreSQL**

     

    The name of the database to create when the Lightsail database resource is created. If this parameter isn't specified, a database named ``postgres`` is created in the database resource.

     

    Constraints:

     

    
    * Must contain 1 to 63 letters or numbers.
     
    * Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0- 9).
     
    * Can't be a word reserved by the specified database engine. For more information about reserved words in PostgreSQL, see the SQL Key Words articles for `PostgreSQL 9.6 <https://www.postgresql.org/docs/9.6/sql-keywords-appendix.html>`__, `PostgreSQL 10 <https://www.postgresql.org/docs/10/sql-keywords-appendix.html>`__, `PostgreSQL 11 <https://www.postgresql.org/docs/11/sql-keywords-appendix.html>`__, and `PostgreSQL 12 <https://www.postgresql.org/docs/12/sql-keywords-appendix.html>`__.
    

    

  
  :type masterUsername: string
  :param masterUsername: **[REQUIRED]** 

    The name for the master user.

     

    **MySQL**

     

    Constraints:

     

    
    * Required for MySQL.
     
    * Must be 1 to 16 letters or numbers. Can contain underscores.
     
    * First character must be a letter.
     
    * Can't be a reserved word for the chosen database engine. For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and Reserved Words articles for `MySQL 5.6 <https://dev.mysql.com/doc/refman/5.6/en/keywords.html>`__, `MySQL 5.7 <https://dev.mysql.com/doc/refman/5.7/en/keywords.html>`__, or `MySQL 8.0 <https://dev.mysql.com/doc/refman/8.0/en/keywords.html>`__.
    

     

    **PostgreSQL**

     

    Constraints:

     

    
    * Required for PostgreSQL.
     
    * Must be 1 to 63 letters or numbers. Can contain underscores.
     
    * First character must be a letter.
     
    * Can't be a reserved word for the chosen database engine. For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and Reserved Words articles for `PostgreSQL 9.6 <https://www.postgresql.org/docs/9.6/sql-keywords-appendix.html>`__, `PostgreSQL 10 <https://www.postgresql.org/docs/10/sql-keywords-appendix.html>`__, `PostgreSQL 11 <https://www.postgresql.org/docs/11/sql-keywords-appendix.html>`__, and `PostgreSQL 12 <https://www.postgresql.org/docs/12/sql-keywords-appendix.html>`__.
    

    

  
  :type masterUserPassword: string
  :param masterUserPassword: 

    The password for the master user. The password can include any printable ASCII character except "/", """, or "@". It cannot contain spaces.

     

    **MySQL**

     

    Constraints: Must contain from 8 to 41 characters.

     

    **PostgreSQL**

     

    Constraints: Must contain from 8 to 128 characters.

    

  
  :type preferredBackupWindow: string
  :param preferredBackupWindow: 

    The daily time range during which automated backups are created for your new database if automated backups are enabled.

     

    The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. For more information about the preferred backup window time blocks for each region, see the `Working With Backups <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow>`__ guide in the Amazon Relational Database Service documentation.

     

    Constraints:

     

    
    * Must be in the ``hh24:mi-hh24:mi`` format. Example: ``16:00-16:30``
     
    * Specified in Coordinated Universal Time (UTC).
     
    * Must not conflict with the preferred maintenance window.
     
    * Must be at least 30 minutes.
    

    

  
  :type preferredMaintenanceWindow: string
  :param preferredMaintenanceWindow: 

    The weekly time range during which system maintenance can occur on your new database.

     

    The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.

     

    Constraints:

     

    
    * Must be in the ``ddd:hh24:mi-ddd:hh24:mi`` format.
     
    * Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
     
    * Must be at least 30 minutes.
     
    * Specified in Coordinated Universal Time (UTC).
     
    * Example: ``Tue:17:00-Tue:17:30``
    

    

  
  :type publiclyAccessible: boolean
  :param publiclyAccessible: 

    Specifies the accessibility options for your new database. A value of ``true`` specifies a database that is available to resources outside of your Lightsail account. A value of ``false`` specifies a database that is available only to your Lightsail resources in the same region as your database.

    

  
  :type tags: list
  :param tags: 

    The tag keys and optional values to add to the resource during create.

     

    Use the ``TagResource`` action to tag a resource after it's created.

    

  
    - *(dict) --* 

      Describes a tag key and optional value assigned to an Amazon Lightsail resource.

       

      For more information about tags in Lightsail, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-tags>`__.

      

    
      - **key** *(string) --* 

        The key of the tag.

         

        Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        

      
      - **value** *(string) --* 

        The value of the tag.

         

        Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'operations': [
              {
                  'id': 'string',
                  'resourceName': 'string',
                  'resourceType': 'ContainerService'|'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord'|'Alarm'|'ContactMethod'|'Distribution'|'Certificate'|'Bucket',
                  'createdAt': datetime(2015, 1, 1),
                  'location': {
                      'availabilityZone': 'string',
                      'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'|'eu-north-1'|'ap-southeast-3'
                  },
                  'isTerminal': True|False,
                  'operationDetails': 'string',
                  'operationType': 'DeleteKnownHostKeys'|'DeleteInstance'|'CreateInstance'|'StopInstance'|'StartInstance'|'RebootInstance'|'OpenInstancePublicPorts'|'PutInstancePublicPorts'|'CloseInstancePublicPorts'|'AllocateStaticIp'|'ReleaseStaticIp'|'AttachStaticIp'|'DetachStaticIp'|'UpdateDomainEntry'|'DeleteDomainEntry'|'CreateDomain'|'DeleteDomain'|'CreateInstanceSnapshot'|'DeleteInstanceSnapshot'|'CreateInstancesFromSnapshot'|'CreateLoadBalancer'|'DeleteLoadBalancer'|'AttachInstancesToLoadBalancer'|'DetachInstancesFromLoadBalancer'|'UpdateLoadBalancerAttribute'|'CreateLoadBalancerTlsCertificate'|'DeleteLoadBalancerTlsCertificate'|'AttachLoadBalancerTlsCertificate'|'CreateDisk'|'DeleteDisk'|'AttachDisk'|'DetachDisk'|'CreateDiskSnapshot'|'DeleteDiskSnapshot'|'CreateDiskFromSnapshot'|'CreateRelationalDatabase'|'UpdateRelationalDatabase'|'DeleteRelationalDatabase'|'CreateRelationalDatabaseFromSnapshot'|'CreateRelationalDatabaseSnapshot'|'DeleteRelationalDatabaseSnapshot'|'UpdateRelationalDatabaseParameters'|'StartRelationalDatabase'|'RebootRelationalDatabase'|'StopRelationalDatabase'|'EnableAddOn'|'DisableAddOn'|'PutAlarm'|'GetAlarms'|'DeleteAlarm'|'TestAlarm'|'CreateContactMethod'|'GetContactMethods'|'SendContactMethodVerification'|'DeleteContactMethod'|'CreateDistribution'|'UpdateDistribution'|'DeleteDistribution'|'ResetDistributionCache'|'AttachCertificateToDistribution'|'DetachCertificateFromDistribution'|'UpdateDistributionBundle'|'SetIpAddressType'|'CreateCertificate'|'DeleteCertificate'|'CreateContainerService'|'UpdateContainerService'|'DeleteContainerService'|'CreateContainerServiceDeployment'|'CreateContainerServiceRegistryLogin'|'RegisterContainerImage'|'DeleteContainerImage'|'CreateBucket'|'DeleteBucket'|'CreateBucketAccessKey'|'DeleteBucketAccessKey'|'UpdateBucketBundle'|'UpdateBucket'|'SetResourceAccessForBucket'|'UpdateInstanceMetadataOptions'|'StartGUISession'|'StopGUISession'|'SetupInstanceHttps',
                  'status': 'NotStarted'|'Started'|'Failed'|'Completed'|'Succeeded',
                  'statusChangedAt': datetime(2015, 1, 1),
                  'errorCode': 'string',
                  'errorDetails': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **operations** *(list) --* 

        An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.

        
        

        - *(dict) --* 

          Describes the API operation.

          
          

          - **id** *(string) --* 

            The ID of the operation.

            
          

          - **resourceName** *(string) --* 

            The resource name.

            
          

          - **resourceType** *(string) --* 

            The resource type.

            
          

          - **createdAt** *(datetime) --* 

            The timestamp when the operation was initialized ( ``1479816991.349``).

            
          

          - **location** *(dict) --* 

            The Amazon Web Services Region and Availability Zone.

            
            

            - **availabilityZone** *(string) --* 

              The Availability Zone. Follows the format ``us-east-2a`` (case-sensitive).

              
            

            - **regionName** *(string) --* 

              The Amazon Web Services Region name.

              
        
          

          - **isTerminal** *(boolean) --* 

            A Boolean value indicating whether the operation is terminal.

            
          

          - **operationDetails** *(string) --* 

            Details about the operation ( ``Debian-1GB-Ohio-1``).

            
          

          - **operationType** *(string) --* 

            The type of operation.

            
          

          - **status** *(string) --* 

            The status of the operation.

            
          

          - **statusChangedAt** *(datetime) --* 

            The timestamp when the status was changed ( ``1479816991.349``).

            
          

          - **errorCode** *(string) --* 

            The error code.

            
          

          - **errorDetails** *(string) --* 

            The error details.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`Lightsail.Client.exceptions.ServiceException`

  
  *   :py:class:`Lightsail.Client.exceptions.InvalidInputException`

  
  *   :py:class:`Lightsail.Client.exceptions.NotFoundException`

  
  *   :py:class:`Lightsail.Client.exceptions.OperationFailureException`

  
  *   :py:class:`Lightsail.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Lightsail.Client.exceptions.AccountSetupInProgressException`

  
  *   :py:class:`Lightsail.Client.exceptions.RegionSetupInProgressException`

  
  *   :py:class:`Lightsail.Client.exceptions.UnauthenticatedException`

  