Heb het bij scripting ook al geplaatst maar ik krijg niet het antwoord dat ik wil, misschien leg ik het niet goed uit in het engels en kan ik het int nederlands beter uitleggen...
Ik ben student Multimedia en Communicatie Technologie en ik heb dit semester met sql leren werken. nu vooral met de sql statements. Nu zou ik dat graag is wa testen op de Mysql database van mijn forum.
Als we in school met een sql database wilden werken converteerde we meestal een acces database naar een sql database. nu heb ik op ons examen een backup van een sql database gekregen en moesten we die restoren in onze sql server zodat we ermee konden werken.
Nu wou ik dus met die mySql database van mijn forum werken en ik dacht, ik ga ze restoren in de sql server. Dit bleek dus niet te werken, misschien deed ik iets fout of misschien kan da helemaal niet? daarom ook de vraag:
Wat is het verschil tussen mySql en sql?
Als er geen verschil is moet ik die database toch kunnen restoren in sql server?
Je vraag verbaast me enigzins gezien het feit dat je al met SQL te maken hebt gehad. SQL is een taal die gebruikt wordt om gegevens uit databases op te halen. Het is een standaard die slecht gevolgd wordt.
MySQL is een database engine net zo als MSSQL. Met SQL kun je gegevens halen uit een MySQL database maar MySQL kent ook aparte commando's die niets met het standaard SQL te maken hebben. MySQL heeft een uitgebreidere syntax. Ik begrijp niet goed van je wat je nu waarheen wil restoren. Heb je elders een database met forum en wil je die in je MySQL database van frihost restoren ofzo? Als je niet kunt restoren kan dat te maken hebben met rechten die je moet hebben. Ook kun je simpelweg proberen een database uit te wisselen die helemaal niet compatibel is. Ikzelf heb informatica gedaan maar ik kan verder met deze gegevens weinig aanvangen. Misschien is er iemand die je nog wat verder kan helpen.
Code of Ruin
Cool
ik wil dus de database van mij forum op frihost restoren in mijn sql server.
Ik dacht dus wel dat mySql en SQL server twee aparte programma's zijn en dat die dus da sql konden gebruiken. daarmee dat ik ni begrijp dat sql server die database van het forum niet kan installeren/restoren (misschien is mijn terminologie een beetje verwarrend).
Dus ben ik dan juist als ik zeg dat de database van mijn forum alleen zal werken in die mySQL engine en niet in die sqlServer?
En hoe installeer ik dat dan en bekijk ik da dan offline in mySQL? of gaat dit niet offline?
We hebben spijtig genoeg op school niteveel gezien over mySQL... we hebben vooral sql databases gebruikt om mee te kunnen programmeren in vb.net en asp.net
ik heb niet echt een idee wat je bedoelt met offline bekijken maar je kan wellicht één of andere mysql client gebruiken om te connecteren met je db en zo alle db's en tabellen te beheren. Ik gebruik meestal SQLyog, daarvan heb je zelfs een gratis (basis) versie als ik mij niet vergis. Het is weeral een tijdje geleden dat ik nog in het cPanel ben geweest maar ik vermoed dat daar ook wel een beheersmodule bestaat die je kan gebruiken om in je db te rommelen.
Meestal hebben de beheermodules (phpmyadmin, sql clients zaols yog,...) ook een functie om je data te exporteren.
Ik weet niet van buiten of er een conversietool bestaat om van mysql naar sqlserver te gaan - in het slechtste geval zal je zelf een conversie script moeten schrijven vertrekkende van een CSV bijvoorbeeld of met wat creativiteit al bij het samenstellen van de CSV (op basis van het resultaat van een query die je zelf hebt geschreven bv select concat('insert into tbl (field, fieldtwo,fieldthree) values (',field,','fieldtwo,',',fieldthree....)
Ik denk dat je met het opschonen van de export file al een eind komt want de insert syntax van mysql en sql server verschillen nu ook niet zoveel en de structuur van je db zal ook niet hard verschillen (enkel het aanmaken van de tabellen, veldtypes, rechten en van die dingen zal anders zijn maar dat kan je vooraf al klaarzetten)
Man het spijt me maar ik raak echt de draad kwijt van je verhaal. Je hebt gelijk als je zegt dat je terminologie verwarrend is en ik krijg ook het idee dat je dingen een beetje door elkaar gooit. Een MySQL database is uitwisselbaar met een andere MySQL database. Deze databases moeten dan natuurlijk wel kunnen draaien op de server in kwestie. Anders zul je inderdaad zoals 666bbq al aangaf een conversiescript moeten schrijven. Als je in staat bent asp.net te leren zal dat ook wel een niet al te groot obstakel vormen. Veel geluk!
Code of Ruin
Beste Reign,
Als ik je verhaal goed lees begrijp ik het volgende: (en als het te simplistisch klinkt, sorry, ik probeer het gewoon helder uit te leggen
)
- je hebt op school de databasetaal SQL behandeld en hebt hier wat commando's mee gegeven.
- je hebt op frihost een werkend forum die zijn gegevens uit een op frihost geinstalleerde mySQLdatabase haalt.
- Je hebt thuis een machine met Microsoft SQLserver (toe maar!)
- je hebt je frihostdatabase op de een of andere manier gebackupt (maar hoe, dat zeg je niet). Het kan zijn, dat je gewoon een kopie hebt gemaakt van de bestanden van je frihost-mySQL-server, maar dat lijkt me sterk.
Ik vermoed, dat je in je forum een backup-optie hebt. Dan zijn er twee mogelijkheden: ofwel heeft dit een bestand aangemaakt met daarin een script wat je database aanmaakt of een bestaande database weer vult met je gegevens, (dus een bestand wat begint met 'CREATE TABLE....' of één die begint met 'INSERT INTO...' of 'UPDATE ...') of dit heeft een bestand aangemaakt met daarin alleen de gegevens bijv. komma-gescheiden, CSV. Je hebt dan een bestand wat bestaat uit 'waarde1,waarde2,waarde3,waarde4,' enz.
Je wilt nu thuis op je Microsoft SQLmachine je forum laten werken, zodat je ook thuis met je forum kunt experimenteren zonder on-line te zijn.
Daarvoor heb je een webserver (Microsoft Internet Server of Apache) nodig, met vermoedelijk PHP of ASP ondersteuning. De meeste fora zijn in PHP geschreven, dus het zal wel PHP zijn.
De meest eenvoudige manier is dan, om je Microsoft server even te vergeten.
Installeer thuis een computer met Linux, zet er Apache bij op (dat kun je tijdens de installatie allemaal kiezen), installeer ook mod-PHP voor Apache, zodat je je forumscripts kunt draaien, installeer MySQL-server en installeer hierop je forum. Je kunt dan waarschijnlijk wel de backup terugzetten van je gegevens en thuis experimenteren.
En wees gerust: de meeste eenvoudige SQL-commando's werken zowel op een server waarop Microsoft SQLserver geinstalleerd is als op een server waarop je MySQL geinstalleerd hebt. SELECT, UPDATE, INSERT, enz. werkt allemaal redelijk gelijk.
Pas bij ingewikkelde opdrachten wordt het anders, maar ik denk, dat je dit niet van plan bent.
Noot: je oorspronkelijke vraag was, wat het verschil tussen MySQL en SQL is. Uit je verhaal bleek dat je onder SQL op school Microsoft SQL-server verstaat. Dit is een ander databasepakket dan MySQL, maar de manier om het te benaderen, via SQL-commando's is volgens mij redelijk hetzelfde. Dat betekent, dat je een tekstgebaseerde backup dus waarschijnlijk wel kunt terugzetten, omdat dit gewoon met SQL-commando's werkt (dan hangt het alleen even van het type backup af, zie boven), maar een letterlijke bestandsbackup kun je niet terugzetten, omdat het bestandsformaat van MySQL niet overeenkomt met het bestandsformaat van Microsoft SQL-server.
Succes!
JohanFH
Laatste opmerking: misschien zit ik er wat Microsoft SQL betreft wel naast hoor, ik werk werk zelf eigenlijk alleen met MySQLservers...
Nee Johan, zelfs die tekstgebaseerde backup zal hij niet zomaar kunnen terugzetten tenzij en dat heb ik daarstraks al aangegeven hij de tabellen reeds voorbereid in ms sqlserver en daarbij alleszins de namen van de tabellen en velden identiek houd. Dan zou het kunnen dat de overzetting op basis van de opeenvolgende statements zou lukken.
Bij de tekstbackup wordt er echter afhankelijke van de keuze ook de structuur van de tabellen meegenomen (data/data+struct/structuur) :
CREATE TABLE `exprob` (
`RecordID` int(10) NOT NULL auto_increment,
`Datum` date NOT NULL default '0000-00-00',
...'naam' varchar...
PRIMARY KEY (`RecordID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
het is een tijdje geleden dat ik nog in sqlserver heb gewerkt maar ik meen mij te herinneren dat er wel wat verschillen zijn qua veldtypes, en wellicht ook in termen zoals auto_increment,...
als je veel zin hebt kan je dus die creates ook nog wel tweaken naar het andere sql dialect (zoals men dat wel eens noemt) maar meer dan vaak ben je dan weer een halve dag aan het zoeken naar die ene komma die net weer anders moet staat voor microsoft....
je kan hier eens gaan kijken http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/mysql.mspx
daar wordt de migratie van mysql naar sql server en de verschillen tussen beide dialecten al wat uitgelegd, zoals je zal zien toch niet niks...
migraties, altijd leuk als je niks om handen hebt
| Quote: |
| migraties, altijd leuk als je niks om handen hebt |
Inderdaad zijn migraties één der vervelendste dingen die er zijn. En als ik 666bbq eventjes mag bijvallen: houdt inderdaad goed je syntax in de gaten want als je een komma verkeert plaatst of het verkeerde commando gebruikt, kand dat hele nare gevolgen hebben.
Cool, niet gemerkt dat hier nog reply's aan waren toegevoegd... Johan zijn antwoord was redelijk duidelijk en bevestigde wat ik moest weten.
merci