Avatar billede aske2 Nybegynder
04. november 2002 - 10:28 Der er 36 kommentarer og
1 løsning

Nybegynder: InnoDB

Hej eksperter
For lige at få det på plads, så er jeg totalt nybegynder indenfor php, mysql og phpmyadmin ;o)

Jeg har installeret MySQL version 3.23.53-max. Jeg skal nu have oprettet en database med nogle tabeller. Der skal kunne bruges foreign keys og jeg har efterhånden fundet ud af, at jeg så skal bruge InnoDB tabeller. Jeg kan bare ikke lige finde ud af, hvordan jeg så skal få det til at fungere! Jeg har været inde og læse på www.mysql.com og www.innodb.com. Jeg har også fundet ud af, at jeg i min my.ini som minimum skal tilføje
innodb_data_file_path

Er der nogen, der kan hjælpe mig med at få InnoDB op at køre? Jeg har siddet og rodet med det hele dagen i går og vil nu virkelig gerne have det til at fungere, da jeg er ved at skrive opgave. Jeg vil give 100 point, men så skal det altså også fungere.

Elisabeth
Avatar billede aske2 Nybegynder
04. november 2002 - 11:15 #1
Er der slet ikke nogen, der kan/vil hjælpe mig????
Avatar billede olly Nybegynder
04. november 2002 - 11:20 #2
Jo, leder lige efter et eks!
Avatar billede olly Nybegynder
04. november 2002 - 11:25 #3
Du skal følge dette eks!

http://www.mysql.com/documentation/mysql/full/manual_toc.html#InnoDB_start

Hvis der er tale om en Windows maskine har jeg selv et eks, som jeg kan poste om lidt?
Avatar billede olly Nybegynder
04. november 2002 - 11:27 #4
A simple `my.cnf' example. Suppose you have a computer with 128 MB RAM and one hard disk. Below is an example of possible configuration parameters in `my.cnf' or `my.ini' for InnoDB. We assume you are running MySQL-Max-3.23.50 or later, or MySQL-4.0.2 or later. This example suits most users, both on Unix and Windows, who do not want to distribute InnoDB datafiles and log files on several disks. This creates an auto-extending data file `ibdata1' and two InnoDB log files `ib_logfile0' and `ib_logfile1' to the datadir of MySQL (typically `/mysql/data'). Also the small archived InnoDB log file `ib_arch_log_0000000000' ends up in the datadir.

[mysqld]
# You can write your other MySQL server options here
# ...
#                                  Data file(s) must be able to
#                                  hold your data and indexes.
#                                  Make sure you have enough
#                                  free disk space.
innodb_data_file_path = ibdata1:10M:autoextend
#                                  Set buffer pool size to
#                                  50 - 80 % of your computer's
#                                  memory
set-variable = innodb_buffer_pool_size=70M
set-variable = innodb_additional_mem_pool_size=10M
#                                  Set the log file size to about
#                                  25 % of the buffer pool size
set-variable = innodb_log_file_size=20M
set-variable = innodb_log_buffer_size=8M
#                                  Set ..flush_log_at_trx_commit
#                                  to 0 if you can afford losing
#                                  some last transactions
innodb_flush_log_at_trx_commit=1

Check that the MySQL server has the rights to create files in datadir.

Note that datafiles must be < 2G in some file systems! The combined size of the log files must be < 4G. The combined size of datafiles must be >= 10 MB.

When you for the first time create an InnoDB database, it is best that you start the MySQL server from the command prompt. Then InnoDB will print the information about the database creation to the screen, and you see what is happening. See below next section what the printout should look like. For example, in Windows you can start `mysqld-max.exe' with:

your-path-to-mysqld>mysqld-max --console
Avatar billede aske2 Nybegynder
04. november 2002 - 11:31 #5
-> olly

Det er en Windows maskine jeg kører på.
Det link du har sendt er vedr. version 4.0.5-beta og jeg har version 3.23.53-max. Jeg HAR været inde og kigge på mysql.com, men kan altså ikke gennemskue, hvad det lige er jeg skal gøre. Du må altså meget gerne poste dit eget eksempel - jeg er bare lost og vil så gerne videre.
Avatar billede aske2 Nybegynder
04. november 2002 - 11:31 #6
-> olly

Jeg ser først nu, at du jo allerede har sendt eksemplet - kigger lige på det og ser om det giver nogen mening for mig
Avatar billede olly Nybegynder
04. november 2002 - 11:33 #7
Det er ikke mit konkrete! Men jeg poster lige mit når jeg kan komme i kontakt med egen maskine!
Avatar billede aske2 Nybegynder
04. november 2002 - 11:34 #8
Eksemplet du har sendt til mig, er ikke ukendt for mig. Jeg har selvfølgelig set det på mysql.com (eller var det innodb.com?). Sikkert et ret dumt spørgsmål, men kan jeg bare copy/paste det ind i min my.ini?
Avatar billede olly Nybegynder
04. november 2002 - 11:35 #9
Ja det brude du kunne!
Avatar billede olly Nybegynder
04. november 2002 - 11:44 #10
innodb_data_file_path = ibdata1:10M
innodb_data_home_dir = c:\mysql\ibdata
set-variable = innodb_mirrored_log_groups=1
innodb_log_group_home_dir = c:\mysql\iblogs
set-variable = innodb_log_files_in_group=3
set-variable = innodb_log_file_size=30M
set-variable = innodb_log_buffer_size=1M
innodb_flush_log_at_trx_commit=1
#.._arch_dir must be the same as .._log_group_home_dir
innodb_log_arch_dir = c:\mysql\iblogs
innodb_log_archive=0
set-variable = innodb_buffer_pool_size=5M
set-variable = innodb_additional_mem_pool_size=5M
set-variable = innodb_file_io_threads=4
set-variable = innodb_lock_wait_timeout=50
Avatar billede aske2 Nybegynder
04. november 2002 - 11:44 #11
Jeg forsøger så at copy/paste det ind i my.ini, men... flere spørgsmål.
1. Hvad skal jeg så gøre bagefter?
2. Kan du så også give en forklaring på, hvad det betyder? Fx innodb_data_file_path = ibdata1:10M:autoextend
Hvad er det så lige det betyder? Og de andre også, hvis du kan give mig en forklaring.
Avatar billede olly Nybegynder
04. november 2002 - 11:44 #12
Sørg for at lav bibliotekterne c:\mysql\iblogs og c:\mysql\ibdata før du starter den!

Så skulle det virke!
Avatar billede aske2 Nybegynder
04. november 2002 - 11:46 #13
Okay jeg prøver lige, men jeg arbejder ikke lynhurtigt, så hav tålmodighed ;o)
Avatar billede aske2 Nybegynder
04. november 2002 - 12:17 #14
Nu har jeg copy/pastet det første eksempel ind i my.ini, oprettet bibliotekerne c:\mysql/iblogs og c:\mysql\ibdata og genstartet computeren. Da jeg så gik ind i phpmyadmin og ville oprette tabeller havde jeg nu også muligheden for at vælge innodb - FEDT! Men...
1. Hvordan markerer jeg en attribut som foreign key?
2. Når jeg har oprettet en tabel og skal til at oprette en tabel mere, så kommer den med følgende fejlmeddelelse:

Fejl
The additional Features for working with linked Tables have been deactivated. To find out why click here.

Når jeg så klikker på linket, kommer følgende frem:

PMA Database ... not OK[ Dokumentation ]
General relation features Disabled

Det skal lige siges, at jeg altså også havde dette problem før! Men hvordan enabler jeg så General relation features?
Avatar billede aske2 Nybegynder
04. november 2002 - 13:00 #15
-> olly
Har du givet op på mig eller....?
Avatar billede olly Nybegynder
04. november 2002 - 13:23 #16
Nej arbejder bare!
Avatar billede olly Nybegynder
04. november 2002 - 13:24 #17
Det kan du vil finde doc på på phpmyadmins hjemmeside!
Avatar billede olly Nybegynder
04. november 2002 - 13:26 #18
Avatar billede olly Nybegynder
04. november 2002 - 15:50 #19
Fundet ud af det?
Avatar billede aske2 Nybegynder
04. november 2002 - 16:14 #20
Hej igen olly

Nej jeg har rodet rundt her og der og alle vegne uden held. Jeg bliver mere og mere forvirret og frustreret :-(

Jeg har kigget på www.phpmyadmin.net/documentation, men... PUHA, hvor er det vildt!

Dokumentationen siger i øvrigt følgende:

$cfg['Servers'][$i]['pmadb'] string
Starting with version 2.3.0 phpMyAdmin offers a lot of features to work with master / foreign - tables. To use those as well as the bookmark feature you will need to create a new db.

To use this functionality as superuser create a new database:
create a new database for phpmyadmin:
  CREATE DATABASE phpmyadmin;
Note that "controluser" must have SELECT, INSERT, UPDATE and DELETE privileges on this database. Here is a query to set up those privileges (using "phpmyadmin" as the database name, and "pma" as the controluser):
  GRANT SELECT,INSERT,UPDATE,DELETE ON phpmyadmin.* to 'pma'@'localhost';
do not give any other user rights on this database.
enter the databasename in $cfg['Servers'][$i]['pmadb']

Jeg kan bare ikke gennemskue det med pma - hvordan, hvor osv.
I øvrigt hører det her vel egentlig slet ikke ind under denne kategori vel?
Avatar billede olly Nybegynder
04. november 2002 - 18:06 #21
Nej egentlig ikke! Har du MSN eller ICQ så jeg kan hjælpe dig med det? Det er lidt nemmere!
Avatar billede olly Nybegynder
04. november 2002 - 18:12 #22
Du skal bare lave en database phpmyadmin og i den database skal du give alle rettigheder til brugeren pma... Det er kort hvad der står!
Avatar billede aske2 Nybegynder
04. november 2002 - 18:21 #23
Hov ser først din kommentar nu og tak. Jeg skal lige til at spise, men min ICQ er 174182668 og jeg vender tilbage lige så snart jeg har spist.
Avatar billede aske2 Nybegynder
04. november 2002 - 18:52 #24
Nu har jeg spist og er tilbage på pinden.
Avatar billede olly Nybegynder
04. november 2002 - 20:01 #25
Jeg skriver og skriver til dig på icq?
Avatar billede aske2 Nybegynder
04. november 2002 - 20:14 #26
SORRY - Hvad gør jeg dog galt? Jeg kan ikke se noget fra dig. Jeg er lige kommet på ICQ i dag, så har endnu ikke helt sat mig ind i det. Vent lige lidt - jeg checker det lige.
Avatar billede aske2 Nybegynder
04. november 2002 - 20:16 #27
Hvad hedder du på ICQ? Er du Linda? Det er den eneste, der gerne vil 'snakke' med mig!
Avatar billede olly Nybegynder
04. november 2002 - 20:17 #28
Nej... Olly(ollyworld.dk)
Avatar billede maniacdog Nybegynder
22. januar 2003 - 11:58 #29
Endnu et spørgsmål der irreterende nok blev løst et tilsyneladende andet sted end lige HER!
!!!
Avatar billede nzc Nybegynder
13. marts 2003 - 22:02 #30
ye :( sidder nemlig med samme prob :((((
Avatar billede aske2 Nybegynder
13. marts 2003 - 23:47 #31
nzc>> Ja det kan jeg godt se er MEGET irriterende! Jeg har nu læst indlæggene igennem og som jeg ser det er der flere 'problemer'. Hvad er det, der helt konkret er dit problem?
Avatar billede nzc Nybegynder
14. marts 2003 - 07:14 #32
jeg vil gerne lave en innodb table men aner ikke hvordan.
Avatar billede aske2 Nybegynder
14. marts 2003 - 08:40 #33
Her er et eksempel på min kode til oprettelse af en innodb tabel:

/* Denne query sørger for at oprette tabellen kunde som en INNODB tabel. Feltet postnr refererer til feltet postnummer i tabellen postnummer. Der laves derfor index på feltet postnr */

mysql_query("CREATE TABLE kunde (
  kundeid INT(4) NOT NULL AUTO_INCREMENT,
  firmanavn VARCHAR(50) NOT NULL,
  gade VARCHAR(50) NOT NULL,
  postnr INT(15) NOT NULL REFERENCES postnummer (postnummer) ON DELETE SET
NULL,
    land VARCHAR(30) NOT NULL,
  telefon VARCHAR(20) NOT NULL,
  telefax VARCHAR(20),
  mail VARCHAR(40),
  PRIMARY KEY  (kundeid),
    INDEX kunde_postnr (postnr))
    TYPE = INNODB");
Avatar billede aske2 Nybegynder
14. marts 2003 - 08:44 #34
Jeg har rygende travlt i dag, men vil gerne forsøge at hjælpe dig, hvis jeg kan. Det er lidt længe siden, så det hele er ikke helt frisk i erindring og jeg er derfor nødt til lige at kigge på tingene igen. Stil derfor endelig spørgsmål, så vil jeg kigge herind en gang imellem, når jeg har tid.
Avatar billede nzc Nybegynder
14. marts 2003 - 14:48 #35
det med TYPE = INNODB ka jeg jo ikke få til at virke da der er noget andet jeg skal sætte op inden. Alt det der med my.cnf som du vist har fået hjælp til her
Avatar billede aske2 Nybegynder
17. marts 2003 - 10:43 #36
nzc>> Undskyld den sene reaktion, men det har været en travl weekend. Jeg ved jo ikke om du har fået det til at virke nu, men... Jeg er absolut ikke blevet ekspert indenfor området, men det lykkedes mig da at få mit til at fungere. Jeg copy/pastede blot følgende ind i min my.ini:
# You can write your other MySQL server options here
# ...
#                                  Data file(s) must be able to
#                                  hold your data and indexes.
#                                  Make sure you have enough
#                                  free disk space.
innodb_data_file_path = ibdata1:10M:autoextend
#                                  Set buffer pool size to
#                                  50 - 80 % of your computer's
#                                  memory
set-variable = innodb_buffer_pool_size=70M
set-variable = innodb_additional_mem_pool_size=10M
#                                  Set the log file size to about
#                                  25 % of the buffer pool size
set-variable = innodb_log_file_size=20M
set-variable = innodb_log_buffer_size=8M
#                                  Set ..flush_log_at_trx_commit
#                                  to 0 if you can afford losing
#                                  some last transactions
innodb_flush_log_at_trx_commit=1
Avatar billede nzc Nybegynder
17. marts 2003 - 14:23 #37
har gjort det samme :))))

kiggede bare i docs og fandt det :)
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
Computerworld tilbyder specialiserede kurser i database-management

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