Mainos / Advertisement:

Mysql

Kohteesta Taisto
Versio hetkellä 17. syyskuuta 2015 kello 20.51 – tehnyt Fuzzybot (keskustelu | muokkaukset) (Päivitetty vastaamaan uutta versiota lähdesivusta)
Siirry navigaatioon Siirry hakuun
Muut kielet:
English • ‎suomi

Mysql on kätevä tietokanta, jota on helppo hallinnoida phpmyadmin sovelluksella. Phpmyadmin sovelluksen käyttö vaatii HTTP - palvelinohjelmiston (kuten Apache2 tai Nginx) ja Php5.

Asennus

 aptitude install mysql-server

Anna mysql root-käyttäjän kirjautumisen salasana asennuksen yhteydessä. Älä unohda salasanaa. Voit luoda myöhemmin lisää käyttäjätilejä ja vaihtaa salasanoja.

Voit käyttää mysql tietokantaa ilman phpmyadminia asentamalla

aptitude install mysql-client

MySQL Konfiguraatio

Konfigurointi tiedosto löytyy Ubuntussa ja Debianissa:

 /etc/mysql/my.cnf

MySQL palvelimen portti jota se kuuntelee. Oletuksena se on 3306.

[client]
port 3306

Osoite jota vain kuuntelee, # risuaita eteen niin kuuntelee kaikkia IP-osoitteita.

bind-address               = 127.0.0.1

Komentorivi

Mysql tietokantaa voi hallita komentorivillä tai kätevästi phpmyadmin websivu ohjelmistolla.

Voit muodostaa komentorivi näkymään yhteyden:

 mysql -u root -p

Anna mysql root käyttäjän salasana

Käyttäjätilit

Uuden kättäjätilin voit luoda komennolla:

 CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Anna oikeudet uudelle käyttäjätilillä. Seuraava komento antaa lähes kaikki oikeudet paitsi muokata käyttäjätilejä.

 GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Tämä komento antaa täydelliset oikeudet käyttäjätileille ja tietokantonnoille.

 GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' WITH GRANT OPTION;

Vahvista oikeudet:

 FLUSH PRIVILEGES;

Lisää käyttäjätilille tiettyjä oikeuksia:

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;

Poista käyttäjätililtä oikeuksia:

 REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;

Poista käyttäjätili

  DROP USER ‘demo’@‘localhost’;

Master ja Slave

MySQL palvelimen asynkroninen synkronointi Masterista Slave palvelimiin.

Master

Tämä tulee Master palvelimen konfiguraatioon:

 nano /etc/mysql/my.cnf

Lisää nämä mysqld loppuun

[mysqld]
...
log-bin=mysql-bin
server-id	= 1
auto_increment_increment = 10
auto_increment_offset = 1

Muodosta yhteys MySQL palvelimeen:

mysql -u root -p

Luodaan käyttäjätili replicant, kirjautumisoikeudella mistä tahansa % ja salasanalla password.

 create user replicant@'%' identified by 'password';

Määritetään käyttäjälle oikeudet:

 GRANT SELECT, PROCESS, FILE, SUPER, REPLICATION CLIENT, REPLICATION SLAVE, RELOAD ON *.* TO replicant@'%';
 Flush Privileges; 

Slave

Tämä tulee Slave palvelimen konfiguraatioon:

Muodosta yhteys tietokantapalvelimeen ja anna Master palvelimen IP-osoite, käyttäjätunnus ja salasana.

HANGE MASTER TO
MASTER_HOST='10.10.10.100',
MASTER_USER='replicant',
MASTER_PASSWORD='password';

Käynnistä Slave palvelin

Start slave;

Varmista että kaikki toimii:

show slave status\G


Molempiin suuntiin synkroidessasi, sinun tulee määrittää molemmat palvelimet Slaveksi ja Masteriksi.

MYSQL ja PHP5

Voit hakea ja lähettää MySQL tietokantaan tietoa PHP:n avulla. Tämä onnistuu yksinkertaisesti tälläisellä funktiolla:

 <?php
 mysqli_connect(host,username,password,dbname);
 mysqli_close($con);
 ?>

Muokkaa tätä esimerkiksi:

 <?php
 //Muodostetaan yheyttä tietokantaan
 $con = mysqli_connect(127.0.0.1,root,Qwerty123,database);
 //Suljetaan yhteys tietokantaan
 mysqli_close($con);
 ?>

Eli palvelimen osoite, käyttäjätunnus, salasana ja tietokanta joka valitaan.


MySQL tietokannasta tulostaminen

 <?php
 $con=mysqli_connect("127.0.0.1","root","Qwerty123","database");
 if (mysqli_connect_errno()) {
 echo "Yhdistäminen epäonnistui " . mysqli_connect_error();
 }
 $result = mysqli_query($con,"SELECT * FROM data");
 while($row = mysqli_fetch_array($result)) {
 echo $row['mysql'];
 }
 mysqli_close($con);
 ?>

Huomaa, että tietokantaan täytyy kirjoittaa jotakin että voit tulostaa tietoa sieltä.

Talllenna edelliset konfiguroinnit mysql.php ja laita sitten esim. index.php tiedostoon:

 <?php
 include_once ('mysql.php');
 ?>

Näin sinun täytyy laittaa kaikkiin haluamaasi php tiedostoon, jotka käyttää tietokantaa.

Varmuuskopio

Automysqlbackup

Lähteet

https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

Mainos / Advertisement: