domino logo
Latest (5.6)
  • Tech Ecosystem
  • Get Started
  • Domino Cloud
  • Code Assist
  • Collaborate
  • Projects
  • Work with Data
  • Workspaces
  • Environments
  • Executions
  • Deploy Models and Apps
  • Model Monitoring
  • Organizations
  • Security and Credentials
  • Notifications
  • Download the Audit Log
  • Data Planes
  • Search Your Domino Deployment
  • Domino CLI
  • Troubleshooting
  • Get Help
  • Send Feedback
domino logo
About Domino
Domino Data LabKnowledge BaseData Science BlogTraining
User Guide
>
Work with Data
>
Data Sources
>
Connect to Data Sources
>
Connect to MySQL

Connect to MySQL

This topic describes how to connect to MySQL from Domino. MySQL is an open source relational database management system.

Domino recommends that you use a Domino Data Source to connect to a MySQL instance from Domino.

Create a MySQL tabular data source

  1. From the navigation pane, click Data.

  2. Click Create a Data Source.

  3. In the New Data Source window, from Select Data Store, select MySQL.

    mysql tab ds

  4. Enter the Host. Valid values are <host string>:<port> or <host string>.

    If no port is specified, the default is 3306.

  5. Enter the name of the Database.

  6. Enter the Data Source Name.

  7. Optional: Enter a Description to explain the purpose of the data source to others.

  8. Click Next.

  9. Specify the credentials for authenticating to MySQL.

    Basic authentication is supported by default. IAM credential propagation might also be available if your administrator has enabled it.

    Note
  10. Click Next (or Skip for Now to configure authentication later).

  11. Select whether Everyone can access this data source or just Specific users or organizations.

  12. Select who can view and use the data source in projects.

  13. Click Finish Setup.

Alternate way to connect to a MySQL data source

Warning
  1. Domino recommends the mysql-connector-python library to interact with MySQL databases from Python.

  2. Use the following Dockerfile instruction to install psycopg2 in your environment. You must have pip installed.

    USER root
    RUN pip install mysql-connector-python
    USER ubuntu
  3. You must set up the Domino environment variables to store secure information about your MySQL connection.

    • MYSQL_HOST

      Hostname where your MySQL service is running. Make sure your MySQL service and network firewall are configured to accept connections from Domino.

    • MYSQL_USER

      The MySQL user you want to authenticate as.

    • MYSQL_PASSWORD

      The password for the user chosen previously.

      See Secure Credential Storage to learn more about Domino environment variables.

  4. See the mysql-connector-python documentation for information about how to use the package. The following is an example to connect to MySQL with mysql-connector-python where:

    • You have set up environment variables with the host, user, and password.

    • Your user has access to a database named db1 in the target MySQL instance.

    • The db1 database contains a table called employees.

      from mysql.connector import (connection)
      import os
      
      # fetch values from environment variables and set the target database
      hostname = os.environ['MYSQL_HOST']
      username = os.environ['MYSQL_USER']
      password = os.environ['MYSQL_PASSWORD']
      dbname = 'db1'
      
      # establish connection to db1 database in your mysql service
      cnx = connection.MySQLConnection(user=username,
                                       password=password,
                                       host=hostname,
                                       database=dbname)
      
      # create cursor for passing queries to database
      cursor = cnx.cursor()
      
      # define query
      query = ("SELECT * FROM employees")
      
      # execute query
      cursor.execute(query)
      
      # print results
      for row in cursor:
        print(row)
      
      # close connection
      cnx.close()

R and RMySQL

Connect to R and RMySQL
  1. To interact with MySQL services from R, Domino recommends the RMySQL library.

  2. Use the following Dockerfile instructions to add RMySQL to your environment.

    RUN sudo apt-get install -y libmariadb-client-lgpl-dev
    RUN R -e 'install.packages("RMySQL")'
  3. Set the following Domino environment variables to store secure information about your MySQL connection.

    • MYSQL_HOST

      Hostname where your MySQL service is running. Make sure your MySQL service and network firewall are configured to accept connections from Domino.

    • MYSQL_USER

      The MySQL user you want to authenticate as.

    • MYSQL_PASSWORD

      The password for the user chosen previously.

      See Secure Credential Storage to learn more about Domino environment variables.

  4. See the RMySQL documentation for information about how to use the package. The following is an example for connecting to MySQL with RMySQL where:

    • You have set up environment variables with the host, user, and password.

    • Your user has access to a database named db1 in the target MySQL instance.

    • The database contains a table named employees.

      # load the library
      library(RMySQL)
      
      # fetch values from environment variables and set the target database
      hostname <- Sys.getenv['MYSQL_HOST']
      username <-  Sys.getenv['MYSQL_USER']
      password <- Sys.getenv['MYSQL_PASSWORD']
      database <- 'db1'
      
      # set up a driver and use it to create a connection to your database
      con <- dbConnect(RMySQL::MySQL(), host = hostname,
       user = username, password = password, dbname = database)
      
      # run a query and load the response into a dataframe
      df_mysql <- dbGetQuery(con, "SELECT * FROM employees")
      
      # close your connection when finished
      dbDisconnect(con)
Domino Data LabKnowledge BaseData Science BlogTraining
Copyright © 2022 Domino Data Lab. All rights reserved.