Avatar billede skovjuul Nybegynder
13. juli 2007 - 04:42 Der er 6 kommentarer og
2 løsninger

Kan jeg oprette en mysql-database i runtime?

Hola.
jeg er ved at lave min egen installer da jeg ikke har fundet nogen der kan det jeg vil ha' den til.
I den forbindelse har jeg brug for, efter at brugen har installeret en MySql-server at oprette databasen i runtime. Men hvordan gør jeg det? Jeg har jo ikke rigtig noget at connecte til :)
Jeg bruger normalt Dac4MySql-komponenterne, men hvis det skal gøres på en anden måde er jeg flexibel :)

På forhånd tak for hjælpen
Jesper
Avatar billede arne_v Ekspert
13. juli 2007 - 04:46 #1
Jeg aner intet om den komponent.

Men i andre sammenhænge er det:
  - installer
  - start
  - connect til den database som hedder mysql og som kommer ved installation
  - opret den database man skal bruge
Avatar billede kroning Nybegynder
13. juli 2007 - 10:36 #2
Her er lidt kode taget ud her og der i et install program jeg engang lavede til nøjagtig samme formål, brugte dog DBExpress.

Først forbindes til MySQL, da det er en nyinstall er root kodeord blank:
SQLConnection.Params.Values['Hostname']:='localhost';
SQLConnection.Params.Values['Database']:='mysql';
SQLConnection.Params.Values['User_Name']:='root';
SQLConnection.Params.Values['Password']:='';
SQLConnection.AutoClone:=false;
SQLConnection.Open;

Sæt nu root kodeord af sikkerheds hensyn til det brugeren har indtastet:
SQLQuery.SQL.Text:='SET PASSWORD FOR root@localhost=PASSWORD("'+EditRootKodeord.Text+'")';
SQLQuery.ExecSQL(true);
SQLQuery.Close;

Opret ny en ny brugernavn og kodeord:
SQLQuery.SQL.Text:='GRANT ALL PRIVILEGES ON camping.* TO '+EditKDnavn.Text+'@'+Quotedstr('%')+' IDENTIFIED BY '+QuotedStr(EditKDkodeord.Text);
SQLQuery.ExecSQL(true);
SQLQuery.Close;

Selve databasen kopierede jeg blot over i data biblioteket som den var, grunden til dette var at den allerede indeholdt en masse data. Men man kan self. også bare køre en SQL der opretter den.
Avatar billede skovjuul Nybegynder
13. juli 2007 - 12:31 #3
Arrgh... nu gemte den igen ikke min besked... nå, prøvet igen:

Tak for skubbet kroning, jeg skulle også finde ud af hvordan jeg opretter nye brugere runtime, så det var jo to fluer med ét smæk. Koblet med arnes guldkorn om bare at connecte til mysql-databasen og oprette den nye database, ja så kører det.

Dog kan jeg se i mysql-databasens 'users'-tabel et mogens (min runtime-oprettede bruger) umiddelbart ikke har nogen privileges i modsætning til root, men han kan stadig indsætte og slette tubler? Den har måske ikke noget at sige den tabel?

Noget andet, findes der andre end @% og @localhost hvis nu det bare skal være indenfor samme LAN? Eller skal mogens bare sørge for at have et rigtig godt password når han bliver oprettet som @% ?

Men tak for det begge to, smid et svar hver så er der lidt point.
God weekend
Jesper
Avatar billede hrc Mester
13. juli 2007 - 15:25 #4
Jeg lavede det på en anden måde. Tog en tom færdigopsat database og linkede den til programmet (når man kører exe-filerne gennem UPX fylder exe-filen alligevel ikke noget).

Med TResourceStream hentede jeg data og gemte det i en fil.
Avatar billede arne_v Ekspert
14. juli 2007 - 02:02 #5
Du kan angive en specifik IP adresse hvis du har lyst.
Avatar billede arne_v Ekspert
14. juli 2007 - 02:02 #6
Og et svar fra mig.
Avatar billede skovjuul Nybegynder
14. juli 2007 - 10:38 #7
hrc, den anden måde virkede fint, så den bruger jeg pt.

arne, det tør jeg ikke rigtig løbe an på da mine brugere ikke er de største it-genier og måske kan komme ud for at deres computer får tildelt en anden ip-adresse til tider. Jeg må bare understrege vigtigheden af stærke passwords.

kroning, smid et svar, så afslutter jeg tråden.

Tak for hjælpen
Jesper
Avatar billede kroning Nybegynder
14. juli 2007 - 15:03 #8
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester