Mainos / Advertisement:

Ero sivun ”Mysql” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
 
(33 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Mysql on kätevä tietokanta, jota on helppo hallinnoida [[phpmyadmin]] sovelluksella. Ennen asentamista, suosittelen asentamaan [[Apache2]] ja [[Php5]] paketit, ennen kuin asennat tämän paketin.
+
<languages/>
 +
<translate>
 +
<!--T:1-->
 +
Mysql on kätevä tietokanta, jota on helppo hallinnoida [[phpmyadmin]] sovelluksella.[[phpmyadmin | Phpmyadmin]] sovelluksen käyttö vaatii HTTP - palvelinohjelmiston (kuten [[Apache2]] tai [[Nginx]]) ja [[Php5]].
  
  aptitude install mysql-server
+
== Asennus == <!--T:2-->
  
Anna mysql root-käyttäjän kirjautumisen salasana asennuksen yhteydessä. Älä unohda salasanaa.
+
  <!--T:3-->
 +
[[aptitude]] install mysql-server
  
== MYSQL ja PHP5 ==
+
<!--T:4-->
 +
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.
  
 +
<!--T:5-->
 +
Voit käyttää mysql tietokantaa ilman  [[phpmyadmin | phpmyadminia]] asentamalla
 +
 +
<!--T:6-->
 +
[[aptitude]] install mysql-client
 +
 +
<!--T:7-->
 +
<gallery>
 +
Tiedosto:Debian mysql installation 1.png|Anna MySQL palvelimen pääkäyttäjälle salasana
 +
Tiedosto:Debian mysql installation 2.png|Toista pääkäyttäjän salasana
 +
</gallery>
 +
 +
== MySQL Konfiguraatio == <!--T:8-->
 +
 +
<!--T:9-->
 +
Konfigurointi tiedosto löytyy Ubuntussa ja Debianissa:
 +
 +
  <!--T:10-->
 +
/etc/mysql/my.cnf
 +
 +
<!--T:11-->
 +
MySQL palvelimen portti jota se kuuntelee. Oletuksena se on 3306.
 +
 +
<!--T:12-->
 +
[client]
 +
port 3306
 +
 +
<!--T:13-->
 +
Osoite jota vain kuuntelee, # risuaita eteen niin kuuntelee kaikkia IP-osoitteita.
 +
 +
<!--T:14-->
 +
bind-address              = 127.0.0.1
 +
 +
== Komentorivi == <!--T:15-->
 +
 +
<!--T:16-->
 +
Mysql tietokantaa voi hallita komentorivillä tai kätevästi [[phpmyadmin]] websivu ohjelmistolla.
 +
 +
<!--T:17-->
 +
Voit muodostaa komentorivi näkymään yhteyden:
 +
 +
  <!--T:18-->
 +
mysql -u root -p
 +
 +
<!--T:19-->
 +
Anna mysql root käyttäjän salasana
 +
 +
=== Käyttäjätilit === <!--T:20-->
 +
 +
<!--T:72-->
 +
Listaa käyttäjätilit:
 +
 +
  <!--T:73-->
 +
select host, user, password from mysql.user\G;
 +
 +
 +
<!--T:21-->
 +
Uuden kättäjätilin voit luoda komennolla:
 +
 +
  <!--T:22-->
 +
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
 +
 +
<!--T:23-->
 +
Anna oikeudet uudelle käyttäjätilillä. Seuraava komento antaa lähes kaikki oikeudet paitsi muokata käyttäjätilejä.
 +
 +
  <!--T:24-->
 +
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
 +
 +
<!--T:25-->
 +
Tämä komento antaa täydelliset oikeudet käyttäjätileille ja tietokantonnoille.
 +
 +
  <!--T:26-->
 +
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' WITH GRANT OPTION;
 +
 +
<!--T:27-->
 +
Vahvista oikeudet:
 +
 +
  <!--T:28-->
 +
FLUSH PRIVILEGES;
 +
 +
<!--T:29-->
 +
Lisää käyttäjätilille tiettyjä oikeuksia:
 +
 +
<!--T:30-->
 +
GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;
 +
 +
<!--T:31-->
 +
Poista käyttäjätililtä oikeuksia:
 +
 +
  <!--T:32-->
 +
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;
 +
 +
<!--T:33-->
 +
Poista käyttäjätili
 +
 +
  <!--T:34-->
 +
DROP USER 'demo'@'localhost';
 +
 +
=== Luo tietokanta ===
 +
 +
Luo tietokanta seuraavalla komennolla
 +
 +
CREATE DATABASE tietokanta;
 +
 +
Luo tietokannalle käyttäjätili
 +
 +
CREATE USER 'tietokanta'@'localhost' IDENTIFIED BY 'Qwerty1';
 +
 +
Lisää tälle käyttäjätilille kaikki oikeudet tähän tietokantaan
 +
 +
GRANT ALL ON tietokanta.* TO 'tietokanta'@'localhost';
 +
 +
Vahvista oikeudet
 +
 +
FLUSH PRIVILEGES;
 +
 +
== Master ja Slave == <!--T:35-->
 +
 +
<!--T:36-->
 +
MySQL palvelimen asynkroninen synkronointi Masterista Slave palvelimiin.
 +
 +
=== Master === <!--T:37-->
 +
 +
<!--T:38-->
 +
Tämä tulee Master palvelimen konfiguraatioon:
 +
 +
  <!--T:39-->
 +
nano /etc/mysql/my.cnf
 +
 +
<!--T:40-->
 +
Lisää nämä mysqld loppuun
 +
 +
<!--T:41-->
 +
[mysqld]
 +
...
 +
log-bin=mysql-bin
 +
server-id = 1
 +
auto_increment_increment = 10
 +
auto_increment_offset = 1
 +
 +
<!--T:42-->
 +
Muodosta yhteys MySQL palvelimeen:
 +
 +
<!--T:43-->
 +
mysql -u root -p
 +
 +
<!--T:44-->
 +
Luodaan käyttäjätili  replicant, kirjautumisoikeudella mistä tahansa % ja salasanalla password.
 +
 +
  <!--T:45-->
 +
create user replicant@'%' identified by 'password';
 +
 +
<!--T:46-->
 +
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:47-->
 +
 +
<!--T:48-->
 +
Tämä tulee Slave palvelimen konfiguraatioon:
 +
 +
<!--T:49-->
 +
Muodosta yhteys tietokantapalvelimeen ja anna Master palvelimen IP-osoite, käyttäjätunnus ja salasana.
 +
 +
<!--T:50-->
 +
HANGE MASTER TO
 +
MASTER_HOST='10.10.10.100',
 +
MASTER_USER='replicant',
 +
MASTER_PASSWORD='password';
 +
 +
<!--T:51-->
 +
Käynnistä Slave palvelin
 +
 +
<!--T:52-->
 +
Start slave;
 +
 +
<!--T:53-->
 +
Varmista että kaikki toimii:
 +
 +
<!--T:54-->
 +
show slave status\G
 +
 +
 +
<!--T:55-->
 +
Molempiin suuntiin synkroidessasi, sinun tulee määrittää molemmat palvelimet Slaveksi ja Masteriksi.
 +
 +
== MYSQL ja PHP5 == <!--T:56-->
 +
 +
<!--T:57-->
 
Voit hakea ja lähettää MySQL tietokantaan tietoa PHP:n avulla. Tämä onnistuu yksinkertaisesti tälläisellä funktiolla:
 
Voit hakea ja lähettää MySQL tietokantaan tietoa PHP:n avulla. Tämä onnistuu yksinkertaisesti tälläisellä funktiolla:
  
   <?php
+
   <!--T:58-->
 +
<?php
 
   mysqli_connect(host,username,password,dbname);
 
   mysqli_connect(host,username,password,dbname);
 
   mysqli_close($con);
 
   mysqli_close($con);
 
   ?>
 
   ?>
  
 +
<!--T:59-->
 
Muokkaa tätä esimerkiksi:  
 
Muokkaa tätä esimerkiksi:  
  
   <?php
+
   <!--T:60-->
 +
<?php
 
   //Muodostetaan yheyttä tietokantaan
 
   //Muodostetaan yheyttä tietokantaan
 
   $con = mysqli_connect(127.0.0.1,root,Qwerty123,database);
 
   $con = mysqli_connect(127.0.0.1,root,Qwerty123,database);
Rivi 23: Rivi 222:
 
   ?>
 
   ?>
  
 +
<!--T:61-->
 
Eli palvelimen osoite, käyttäjätunnus, salasana ja tietokanta joka valitaan.
 
Eli palvelimen osoite, käyttäjätunnus, salasana ja tietokanta joka valitaan.
  
  
 +
<!--T:62-->
 
MySQL tietokannasta tulostaminen
 
MySQL tietokannasta tulostaminen
  
   <?php
+
   <!--T:63-->
 +
<?php
 
   $con=mysqli_connect("127.0.0.1","root","Qwerty123","database");
 
   $con=mysqli_connect("127.0.0.1","root","Qwerty123","database");
 
   if (mysqli_connect_errno()) {
 
   if (mysqli_connect_errno()) {
Rivi 40: Rivi 242:
 
   ?>
 
   ?>
  
 +
<!--T:64-->
 
Huomaa, että tietokantaan täytyy kirjoittaa jotakin että voit tulostaa tietoa sieltä.
 
Huomaa, että tietokantaan täytyy kirjoittaa jotakin että voit tulostaa tietoa sieltä.
  
 +
<!--T:65-->
 
Talllenna edelliset konfiguroinnit mysql.php ja laita sitten esim. index.php tiedostoon:
 
Talllenna edelliset konfiguroinnit mysql.php ja laita sitten esim. index.php tiedostoon:
  
   <?php
+
   <!--T:66-->
 +
<?php
 
   include_once ('mysql.php');
 
   include_once ('mysql.php');
 
   ?>
 
   ?>
  
Näin sinun täytyy laittaa kaikkiin haluamaasi php tiedotoon, jotka käyttää tietokantaa.
+
<!--T:67-->
 +
Näin sinun täytyy laittaa kaikkiin haluamaasi php tiedostoon, jotka käyttää tietokantaa.
 +
 
 +
== Varmuuskopio == <!--T:68-->
 +
 
 +
Tässä helppo automatisointisovellus
 +
 
 +
<!--T:69-->
 +
[[Automysqlbackup]]
 +
 
 +
Voit ottaa myös mysqldump komennolla
 +
 
 +
  mysqldump --all-databases --single-transaction --user=root --password > all_databases.sql
 +
 
 +
== Lähteet == <!--T:70-->
 +
 
 +
<!--T:71-->
 +
https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql
 +
</translate>
 +
 
 +
[[Category:Linux]]
 +
[[Category:Mysql]]
 +
[[Category:PHP5]]

Nykyinen versio 4. heinäkuuta 2019 kello 12.10

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

Listaa käyttäjätilit:

  select host, user, password from mysql.user\G;


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';

Luo tietokanta

Luo tietokanta seuraavalla komennolla

CREATE DATABASE tietokanta;

Luo tietokannalle käyttäjätili

CREATE USER 'tietokanta'@'localhost' IDENTIFIED BY 'Qwerty1';

Lisää tälle käyttäjätilille kaikki oikeudet tähän tietokantaan

GRANT ALL ON tietokanta.* TO 'tietokanta'@'localhost';

Vahvista oikeudet

FLUSH PRIVILEGES;

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

Tässä helppo automatisointisovellus

Automysqlbackup

Voit ottaa myös mysqldump komennolla

 mysqldump --all-databases --single-transaction --user=root --password > all_databases.sql

Lähteet

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

Mainos / Advertisement: