Data Factory MySQL Connectors - mysql

Anyone got an idea of the difference between the Azure Database for MySQL connector and the MySQL connector. I need to create a Linked Service to extract data from a VNet Peered MySQL database. All help gratefully received.
FYI, when I test the Linked Service connection, I'm getting timeout. SSL is required.

Azure MySQL connector is for MYSQL stored and managed by Microsoft as a service on Azure. The MYSQL connector is for MySQL on your on-prem environment or on a virtual machine in Azure.
If your MySQL server is in your own Vnet, and cannot be accessed from outside by data factory, you need to install a Self hosted integration runtime service inside your Vnet, to connect between MySQL and data factory.

Related

How to connect Azure Database for MySQL flexible server in Azure SQL Server Database

I am trying to set up a connection between Azure MySQL flexible server and Azure SQL database mainly to read data from MySQL and store it in the SQL Server periodically (multiple times a day).
I was thinking of creating a stored procedure inside my SQL Server database; however, I cannot seem to get a connection from the SQL Server into the MySQL database.
I know with ODBC you can connect MySQL to on-prem SQL Server, but unfortunately, there is nothing I have found for the same functionality for Azure SQL Server.
Has anyone done this? Is this possible?
I have tried to set up an ODBC connection, but it did not work as the SQL Server is on Azure.
I tried setting up a linked server inside SQL Server straight to MySQL, but it doesn't seem possible as the SQL Server is not on-prem.
I tried creating external database objects based on the following link.
With all these approaches, my expectation was to surface the MySQL tables from Azure SQL Server/SSMS.
Thank you for your help in advance!
MySql Workbench is the perfect option for connecting the azure database for mysql.
for that we need to create flexible server in azure portal. I created flexible server in azure portal.
Image for reference:
I created database in flexible server by clicking add in in database option. it crated successfully.
Image for refence:
I installed MySQL Workbench in my local system.
you can get your required fields to connect the server in connect tab.
Image for reference:
I connected to the server by filling required fields.
Image for reference:
Click on ok. It connected successfully.
Image for reference:
AFAIK Export the data from Azure mysql flexible server in the form of sql script through MySQL work bench and import that file in Azure sql database through SSMS. IN this we can write data into Azure Sql database.
I have had to create an Azure Function App that contains a Timer function that reads the data from the MySQL data and pushes it to SQL Server every 15 minutes (as were the requirements).
Thank you for everyone for commenting.
It seems you can use Data-in replication.

MySQL workbench database import from Azure SQL

I am currently trying to use the MySQL Workbench migration wizard to import a database located on an Azure SQL Managed instance to an on-premise MySQL server, but i have an issue with the wizard: it fails to retrieve the database schema with the following error:
'WARNING: The following catalogs were not found: database_name'
Note: The user i currently use to perform the migration is actually granted on VIEW DEFINITION at the database level but not at the server level (VIEW ANY DEFINITION) , since it is not supported in Azure SQL. Any idea about how to make this wizard work is welcomed.
Like #JeffRamos said before you using MySQL Workbench migration, please check if the user can connect to the Azure SQL Managed instance with SSMS and has the permission to access the Azure MI database. Just from the error message, it's not the firewall issue.
As I know about Azure Managed instance, if we want migrate the database, the user muse be db_owner or admin account.
HTH.

How to run SQL Profile on AWS Aurora or Mysql

What tool can I use to run sql profile against a AWS Aurora or AWS Mysql database? Seems like a simple task that I have done many times against local mysql sql db or ms sql server, but for the life of me I cannot get to work. Is this something that can be done? I have been trying to use Neor Profile without success. However, I'm able to use Neor Profile successfully on my local mysql db.
Because Neor Profile basically serves as a proxy, you have to use port 4040 in your application and then Neor connects to AWS via port 3306. I can successfully get Neor Profile 'profiling' against the AWS db but when I run my local application or mysql workbench, via port 4040, it doesn't connect, with a general connection error.
My question, which I can't find by searching the Internet or help files is...Can you perform a sql profile against a AWS Aurora or AWS Mysql database?

Connect MS Excel and/or MS Access with AWS RDS

I have hired developers to make an app for me. The backend database is hosted on Amazon Web Service RDS. The server side language is PHP using Yii framework. originally when I awarded the work i asked the developers to make sure I could connect Excel and/or Access to the backend Database - AWS RDS in this case.
The developers are now telling me it is not possible to connect AWS RDS with MS Access. Instead they have asked me to install MYSQL workbench to connect with AWS RDS. That connection worked.
My question is: Is their statement true? is it not possible to use some sort of ODBC to allow MS Access to connect with AWS RDS. Can MS Access connect with AWS Dynamo DB? What if I switched to AWS hosted SQL Server?
Appreciate your help
Should be no problem with current AWS - RDS technology
Set up 'instance' of your RDB. We used MySQL
Configure your VPC to talk, outbound and inbound. See AWS docs
MySQL instance.
Install MySQL workbench to set up connection and try it out. See AWS docs
a. Create a table in MySQL Workbench to make sure things work.
b. Save the connection for reference, easy access and administration.
Install MySQL ODBC driver from: http://dev.mysql.com/downloads/connector/odbc/
Connect MS ACCESS to AWS hosted MySQL through ODBC driver
The Table created above in #3 should now be available
Finally
a. Connect EXCEL to AWS hosted MySQL through ODBC driver. Under 'Data' tab select "From Other Sources -> From Microsoft Query -> [select] 'New Data Source'"
b. Fill in the same parameters as above for "Create New Data Source" and your AWS data will flow right into your EXCEL spreadsheet.
As of 2018, setup steps are below:
click Excel Data tab on the top
Get Data From--choose From Other Source--From ODBC
Data source name--choose Amazon Redshift ODBC DSN (If not show up, install AWS driver)
expand Advance option--Connection string type your "driver={Amazon
Redshift (x64)};server.....
type in any SQL query--then click OK
type in aws workbench user name and password
a new sheet will be created with data
go to the table you want to paste the data, clear old data
click data tab, choose existing connection
paste query data to your desired excel cell
next time, just need to click Query Tab on the top, refresh
Not positive about connecting to Amazon's RDS system. But I do know that you can setup MS Access to connect to MySQL. It's a bit finicky to setup to start with, but I've had a client running things successfully with a MySQL DB, Yii frontend and MS Access accessing the DB for backend work.
Works great. We're on a stock HostGator account and it's working fine for us. The main wrinkles have been working out how to speed up queries between MS Access and the MySQL DB, as you can quickly end up trying to access huge amounts of data that MS Access then joins after pulling it over the wire, rather than before.

How to 'switch' from MySQL to Amazon RDS with minimal application impact?

Amazon officially states: "Amazon RDS gives you access to the full capabilities of a familiar MySQL database. This means the code, applications, and tools you already use today with your existing MySQL databases work seamlessly with Amazon RDS."
I don't get this. Amazon RDS is accessible via web services and there a client libraries (like the one for .Net).
So if I have an existing .Net application that uses a DAL which in turn queries MySQL, how can I make the same DAL talk to the Amazon RDS (via the web services). Or am I missing something here?
Amazon RDS is pure MySQL, accessible by your app the same way as any other MySQL database; the web services interface to RDS is purely for creation, deletion, and modification of the DB instances, not the DB data. From their FAQ:
Q: How do I access my running DB
Instance?
Once your DB Instance is available,
you can retrieve its
endpoint via the DescribeDBInstance
API. Using this endpoint you can
construct the connection string
required to connect directly with your
DB Instance using your favorite
database tool or programming language.
In order to allow network requests to
your running DB Instance, you will
need to authorize access. For a
detailed explanation of how to
construct your connection string and
get started, please refer to our
Getting Started Guide.
This is the part of the Getting Started Guide you need -- it explains how to get the hostname of your new instance so you can connect to it, authorize the instance for access from the client, and then connect using the MySQL command-line client (as an example):
$ rds-describe-db-instances --headers
$ rds-authorize-db-security-group-ingress default --cidr-ip 192.0.2.0/30 --headers
$ mysql -h myinstance.crwjauxgijdf.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p
Amazon RDS is just a normal server with normal MySQL access. There's only the webservice that handles instance creation etc., but everything mysql related is still the same.