Enabling MySQLx
protocol support allows customers to use their MySQL
instance as a document store. Further technical details on that can be found here.
MySQL
initially provided support for X-DevAPI ( MySQLx
) in v5.7.12 as an optional extension which can be installed by the user, but moving forward to v8.0+ it is supported by default.
To try this please go to https://aiven.io and create a new MySQL service using this link.
Once you have a running MySQL
instance you will find a new tab MySQLx
under Connection Information
.

MySQLx
is a different protocol implementation, hence the connectors need a separate port as compared to standard MySQL
port and a different protocol mysqlx://
for the connection. To connect to your instance in your preferred programming language, you can use one of many available connectors from this list.
In this article we will also describe how to connect to your MySQL
instance running on Aiven using Python
.
Install the
mysqlx
python library by runningpip install mysql-connector-python
.Please also copy the
Service URI
and the correspondingPort
from your aiven-console as shown above.Note that you are connecting to your
MySQLx
instance using the prefixmysqlx://
# create a new mysqlx session
import mysqlx
session = mysqlx.get_session(
"mysqlx://avnadmin:some-password@mysql-test-ansrivas-test.avns.net:12684/defaultdb?ssl-mode=REQUIRED"
)
# create a test schema
schema = session.create_schema("test")
# create a new collection in the schema
collection = schema.create_collection('food_prices')
# Add entries to this collection
collection.add(
{"type": "pizza", "price": "10e"},
{"type": "burger", "price": "5e"},
).execute()
# Read it back:
for doc in collection.find().execute().fetch_all():
if doc.type == "pizza":
assert (doc.price == "10e")
else:
print(f"Pizza not found, but we found {doc}")
Got here by accident? Learn how Aiven’s hosted and managed MySQL solution will simplify your workflow: