Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL-tietokannan luonti

Sivun loppuun

Jaska [12.11.2010 11:02:36]

#

Teen nettisivua, johon tarvitsisin MySQL-tietokannan. En ole ennen luonut kantaa, joten miten tällainen tehdään? PHP.netin ohjeissa luki

mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

, mutta mistä tiedän, mitä mun pitää laittaa noihin kolmeen ensimmäiseen parametriin? Tuo luomani kannan nimi tulee kai tohon viimeiseen parametriin.

Triton [12.11.2010 11:52:43]

#

Niin siis sulla on jo tietokanta luotuna?

Riippuen siitä mihin olet sen tietokantasi luonut, täytyy sinun antaan ensimmäiseksi parametriksi tietokantapalvelimen osoite. Toiseksi ja kolmanneksi annat tunnuksen ja salasanan, jolla pystyt kirjautumaan tietokantapalvelimellesi ja viimeiseksi parametriksi annetaan sen tietokannan nimi, jota halutaan käyttää.

Edit. Jos sinulla käytössä esim. PHPMyAdmin, niin sama tunnus ja salasana kelpaa tuon mysqli-luokan kontruktorin parametriksi.

temu92 [12.11.2010 12:03:54]

#

Ohjelmointiputkastakin löytää ihan hyviä oppaita: https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj8 ja https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=mysqlphp01

Itse yleensä väsään kannat käyttäen PHPMyAdminia koska sillä se on helpompaa.

Triton [12.11.2010 12:12:22]

#

temu92 kirjoitti:

Itse yleensä väsään kannat käyttäen PHPMyAdminia koska sillä se on helpompaa.

Tuo on harvinaisen totta. Tosin ärsyttävä puoli on lyhyt istuntoaika, joten se kirjautuu ulos aina silloin, kun on hommat kesken.

Jaska [12.11.2010 12:21:51]

#

Kyllä mäkin koetin käyttää PHPMyAdminia.

Virhe tietokantaan kytkeytymisessä (1045) Access denied for user 'my_user'@'web01.wesnet.local' (using password: YES)
SQL query:

SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(‘MyNewPassword’);

MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''localhost’ = PASSWORD(‘MyNewPassword’)' at line 1

Triton [12.11.2010 12:29:09]

#

Missä tuo tietokantapalvelimesi sijaitsee?

Lebe80 [12.11.2010 12:33:48]

#

Ja ennen kuin pääset phpmyadminilla tietokantaasi käsiksi, se pitää olla luotuna, ja siihen liittyvät käyttäjät asetettuna.

Jaska [12.11.2010 12:43:08]

#

Palvelin sijaitsee jossain freehostingcloud.comin uumenissa osoitteessa 10.10.10.3. Loin kannan tai alkuun kaksi taulua. Mites nuo käyttäjät asetetaan? Tai ehkä ne ovat jo paikoillaan, sillä loin taulut MyAdminin avulla.

Lebe80 [12.11.2010 14:50:20]

#

Todennäköisesti käyttäjä on kirjautuessasi antamasi tunnus ja antamasi salasana juurikin samaisen käyttäjän salasana.

Jaska [12.11.2010 15:37:28]

#

Nyt löytyi kohta, jossa pystyin luomaan käyttäjän. Toisaalta sille ei tullut mitään oikeuksia kantaan. Kuinka voin lisäillä niitä?

Triton [12.11.2010 15:59:41]

#

Et välttämättä mitenkään se riippuu ihan siitä, mitkä oikeudet sinulla on...

Edit. Voisit tietenkin asentaa koneellesi Apachen, PHP:n ja MySQL ja harjoitella sitä kautta MySQL:n käyttämistä PHP:llä.

Jaska [12.11.2010 16:57:29]

#

Triton kirjoitti:

Edit. Voisit tietenkin asentaa koneellesi Apachen, PHP:n ja MySQL ja harjoitella sitä kautta MySQL:n käyttämistä PHP:llä.

Joskus koetin pystyttää Apachen, mutta en saanut sivuja näkyviin nettiin. Toisaalta osaan käyttää MySQL:ää PHP:n seassa, sillä tein sitä kolme kuukautta kesätöissäni. Tällöin talossa oli kuitenkin asiantuntija, joka auttoi ongelmissa ja kanta oli ollut käytössä varmaan jo vuosia. Ongelma on vaan siinä, miten saan kannan toimimaan, sillä en ole koskaan pystyttänyt tietokantaa ja antanut sen käyttäjille oikeuksia.

Jaska [12.11.2010 20:29:02]

#

Nyt se kanta lähti toimimaan siten, että tein admin-käyttäjän ja annoin sille kaikki oikeudet. Tein myös user-käyttäjän, mutta en keksi, mitkä oikeudet hänelle kannattaa antaa. Vaihtoehdot ovat:
SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
REFERENCES
INDEX
ALTER
CREATE TEMPORARY TABLES
LOCK TABLES
CREATE VIEW
SHOW VIEW
CREATE ROUTINE
ALTER ROUTINE
EXECUTE
EVENT
TRIGGER.
Ainakaan pelkkä kolmen ensimmäisen oikeuden antaminen ei riitä, Access denied for user.

Toinen asia, joka mietityttää on kannan käyttäjän salasana, joka laitetaan lauseeseen $link = mysqli_connect( blaa, blaa, blaa ). Mulla on se saatavilla control panelin kautta, mutta se pitäisi saada myös PHP-koodiin. En tiedä toistaiseksi muuta tapaa kuin kovakoodata se muuttujaa, mutta tämä tuntuu huonolta vaihtoehdolta, sillä voin joskus muuttaa sitä control panelin kautta.

Metabolix [12.11.2010 20:34:19]

#

Jaska kirjoitti:

Tein myös user-käyttäjän, mutta en keksi, mitkä oikeudet hänelle kannattaa antaa.

Jos kaikki kyselyt ovat peräisin omasta koodistasi ja luotat koodin bugittomuuteen, erillinen käyttäjänimi ei välttämättä ole tarpeen.

Jaska kirjoitti:

En tiedä toistaiseksi muuta tapaa kuin kovakoodata se [salasana] muuttujaa, mutta tämä tuntuu huonolta vaihtoehdolta, sillä voin joskus muuttaa sitä control panelin kautta.

Mietipä hetki ihan järkevästi, mikä on salasanan tarkoitus. Jos salasanan voisi hakea automaattisesti tietokannasta, mitä hyötyä sellaisesta olisi?

Jaska [12.11.2010 20:42:42]

#

OK, no tietysi! *Facepalm*

Triton [12.11.2010 22:27:25]

#

Metabolix kirjoitti:

Jaska kirjoitti:

Tein myös user-käyttäjän, mutta en keksi, mitkä oikeudet hänelle kannattaa antaa.

Jos kaikki kyselyt ovat peräisin omasta koodistasi ja luotat koodin bugittomuuteen, erillinen käyttäjänimi ei välttämättä ole tarpeen.

En ainakaan itse lähtisi luottamaan oman koodini bugittomuuteen, joten tällöin root-käyttäjän oikeudet ovat varsin riskialttiit. Uskoisin, että oikeudet SELECT-, UPDATE-, INSERT- ja DELETE- kyselyihin riittää... Ainakaan itse en ole varsinaisen ohjelman puolella muuta tarvinnut.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta