Changing from SQL database server to hosting server's mySQL - mysql

I have made a web page which uses a local SQL database server.
Now that I want to publish the web page and place it online, I have to change everything, because the hosting server uses mySQL and presents me with his own mySQL database, and I don't know how to make that transition, I have an entity model in my solution and the Controller my database.
The specific question is - what are the steps to make that transition?

1 use SQL Tools (don't know what version you have) do a full backup.
2 from the new hosting server, restore the database.
3 change your connection strings or path (depends on programming environment) to use new MySQL.
Here is a link to what I used when I migrated in a similar way as to automate the whole process(Yes, it took a little learning but worth it). https://www.youtube.com/watch?v=rpPANKhbpDs

try to install mysql connector
https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html

MySQL Workbench provides you with the Migration Wizard feature. It allows you to migrate databases from various RDBMS products to MySQL.
This documentation would help you get started,... http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server-to-mysql-using-workbench-migration-wizard/
There are also several paid tools available which convert MS SQL to MySQL, but I've never used them personally. These tool come with free trial so you can actually test them before purchase. You can also refer similar threads on Stackoverflow,...
How to migrate SQL Server database to MySQL?
How to export SQL Server database to MySQL?

Related

How to connect to a remote MySQL from an Azure SQL server/database

sorry if title is not so clear, probably I am not finding what I need due I do not know how to search
I have few MySQL servers is separated online servers (from different wordpress) and I want to load some of the data on those databases/tablets into a SQL database located on Azure.
inside Azure portal itself I do not see where to establish external connections, neither at server level, neither at database level
I download and install Microsoft SQL Server Management Studio, connect to the server, I can see my databse and the master one, Security with logins, and Integration Service Catalog, nothing else.
I was looking for something like:
https://www.jetbrains.com/help/go/db-tutorial-connecting-to-ms-sql-server.html#step-3-connect-to-microsoft-sql-server-with-datagrip
but nowhere ...
maybe something like this:
https://www.devart.com/odbc/mysql/docs/microsoft_sql_server_manager_s.htm
but no Servers objects option available on my SSMS
Can be this done?
Note: Azure database is a basic wfor now, if that is a limitation
Some choices.
In your SQL Server Management Studio create a linked server pointing to each MySQL instance. You found the instructions for that. https://www.devart.com/odbc/mysql/docs/microsoft_sql_server_manager_s.htm But it probably will not work in Azure SQL Server; you don't have access to the underlying Windows OS to install stuff like MySQL ODBC drivers, which you need. (You could ask Azure techsupport if they can help.)
In each MySQL instance, try creating a federated table connection to appropriate table in SQL Server. That cross-vendor federation stuff only works in MariaDB, however; MySQL's federation only goes MySQL <--> MySQL.
Write yourself a purpose-built extract / transform / load (ETL) program, and arrange to run it every so often. Program it to connect to all the servers involved, retrieve the data needing to be transferred from your MySQL servers, and update / insert that data on the SQL server.
(edit) You may be able to use command-line SQL client programs. mysqldump, with its --compatible option, may generate usable INSERT statements in a file. You then may be able to use sqlcmd to run those INSERTs on your Azure server. It's going to take some hacking, and may take using sed(1) or awk(1) to make the MySQL output compatible with SQL Server.
I believe the third option is the most robust one for production use.

How do I migrate a SQLAnywhere 9 db running in a remote server into a mysql server on my machine?

I am working at a company that has some CRM software running in a remote Windows XP server that uses a SQLAnywhere 9 db to store its data; I have access to this remote server with an administrator account.
I would like to extract the db into a .sql file so that I can run the db locally on my machine without affecting the running db in the server (since it is key for the company's day to day operation).
The reason I need this is that we are going to test some BI Software and we need data from this database to test it, but we don't know the structure of the database since the developers of the CRM software didn't give us any documentation on it. So we need to have the database locally so that, without affecting the running CRM, we can:
understand the structure by looking at the DDL
make queries to it to get sample data
I researched a bit, and the most common solution to my problem was to use dbunload on the remote server to unload the db into a reload.sql file that contained what I needed. But most tutorials on the subject mention that I have to stop the db first (which would be catastrophic). If this is the only option, then I guess I am willing to do it on the weekend when the CRM is not used, but I wanted to know if there was another solution first.
If there is no other solution, can you point me to where I can find the proper and safer way to do this?
I have researched a lot, but prior to this day I have never even heard of SQLAnywhere, so I really need all the help I can get. My main concern is doing something that impacts negatively the CRM software.
Thank you.
You can run dbunload across the network, you just have to tell it to do an "external" unload. The default is to do an internal unload which would only work from the machine where the database server is running.
I don't have SQL Anywhere 9 documentation right now to look up the exact switch, but dbunload -? should show you all the possible switches.
Edit:
-an will create a new database and load the data and schema from another data
-xi switch will do external unload and internal reload.
-c parameters to connect to your remote database

Database connection MySQL or Berkeley DB

Ive just recently learned SQL. There seems to be a few concepts I cant understand. Please check my statements. SQL is a language you are using to access data in MySQL? MySql is a software for a database server? So this means you can buy your own computer hardware and install MySql there and you can access your files in that specific hardware? Or is MySql only installed in hardwares owned by Oracle and you can only access files there by registering in Oracle?
Here is an example please correct the statement. Im trying to build a website for my students that take in a username and password. This website will use a scripting language that will connect to a database server. So I upload my xhtml, css files, and some scripting language to a webhost. Then those scripting files will connect me to my database server? This means I should have a database server. The database server are MySql, Appache Cassandra. To connect to those database server do I need my own harver server that has these database server installed or do I obtain membership from Oracle(?), Appache(?) to access there database server or is there other ways to store data? I think you guys can see my confusion.
You could say SQL is a standardized language to work with relational databases like MySQL, SQL Server Oracle, PostgreSQL etc They conform more or less to the standardized SQL language
MySQL is open source you can install it on just about any major OS / hardware architecture, for free you don't have to pay anyone anything except for support if you require that
It's possible to host your database on a server and allow remote apps to connect to it.
Apache Cassandra isn't exactly a relational database.
The first thing you need to do is learn to use Google to search for answers to your basic questions. I also recommend Wikipedia.org.
Those two websites can help you learn about what SQL is, MySQL is, scripting languages are, and what servers are.
I'll throw you a bone here. MySQL, PHP, and Apache (1 "p", not 2) are all free software. You can install them on "Windows" or "Linux".
If you're running Windows, also try using Google to research "WAMP stack" or "WAMP".

I'm trying to migrate SQL SERVER Express to MySQL

I have a somewhat small database in SQL Server Express 2005 that I really need to migrate over to a MySQL install on my hosting service (Dreamhost). After reading for a couple days, everything pointed to the MySQL Migration Toolkit, which is unfortunately EOL. I was able to find an archive and install it on my server running Sql Server. I set the source database, and set my Dreamhost MySQL as the destination. For whatever reason I get tons of permission errors trying to migrate although the user I'm connecting to MySQL as full permissions (working with dreamhost on this).
Is there a better way to do this? I've heard that I should use some third party tools, (like dbtools) and then I heard NOT to use third party tools.
Like I said the database is small, with a few views, a few functions, and a few stored procs, which I can manually move over if needed.
What are my options? Thank you!
Export your SQL Server database to a downloadable package (SSIS?)
Install SQL Server Express locally.
Install MySQL locally.
Run the Migration Toolkit locally.
Dump the MySQL database
Upload and run the Dump file # DreamHost (via phpMyAdmin if possible).
For such a small database you may spend more time trying to get a 3rd party tool to work for your situation than it would take you to just move the stuff manually. If you used standard SQL and little to nothing proprietary to SQL Server, creating the objects manually in MySQL should be easy enough... you just have to be aware of the slight syntax differences between the two platforms. Once the structures are created, generating insert statements to populate the data should also be trivial.

ADO.NET (Sql Compact + MySQL + IBM db2 expressC)

I'm developing an app which will have a central database users can add entries to. The database will have to be on a server somewhere but I want the users to be able to add entries offline. The app will sync to the main db when connection is available. So, I supose I need 2 databases - the main one sitting on a server (preferably linux) and a small one on each client machine to use as a buffer when offline. The app will be coded in c# for windows. I'm having trouble deciding what databases to use and whether I can leverage any replication technology to make this easier. Also, I don't want to pay for anything ;) So I guess my questions are...
Will I have any trouble writing code in ADO.NET to move data from something like SQL Compact Edition to MySQL?
Are there any replication solutions which will move stuff from local to main database for me
I've recently discovered IBM's db2 expressC but I'm not sure if it's serverless as well as server installed. Does anyone know?
Firebird can be server or serverless. Can I replicate between them. Is the server mode capable of heavy use?
Firebird can be server or serverless.
Can I replicate between them.
Yes.
Is the server mode capable of heavy
use?
Define 'heavy use'. I've had production systems with 200 simultaneous users pumping 20 transactions/minute each on databases in the 10-20GB range. I'm sure there are many larger deployments out there.
Also, what you describe seem like the 'briefcase model'. You should look into it if you haven't already done so. Maybe the solution is not replication at the database level, but rather a smarter fat client.
Just answering two of your questions; I don't know about DB2 or Firebird.
Will I have any trouble writing code in ADO.NET to move data from something like SQL Compact Edition to MySQL?
That should be very trivial; install MySQL Connector/NET and you're good to go.
Are there any replication solutions which will move stuff from local to main database for me
SQL Server replication is made for this, but I don't suppose it would work with MySQL.