Ero sivun ”Mysql” versioiden välillä
(20 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
+ | <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]]. | 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]]. | ||
− | + | == Asennus == <!--T:2--> | |
+ | <!--T:3--> | ||
+ | [[aptitude]] install mysql-server | ||
+ | |||
+ | <!--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. | 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 | Voit käyttää mysql tietokantaa ilman [[phpmyadmin | phpmyadminia]] asentamalla | ||
− | [[aptitude]] install mysql-client | + | <!--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 27: | 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 44: | 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'); | ||
?> | ?> | ||
+ | <!--T:67--> | ||
Näin sinun täytyy laittaa kaikkiin haluamaasi php tiedostoon, jotka käyttää tietokantaa. | Näin sinun täytyy laittaa kaikkiin haluamaasi php tiedostoon, jotka käyttää tietokantaa. | ||
− | == Varmuuskopio == | + | == Varmuuskopio == <!--T:68--> |
+ | |||
+ | Tässä helppo automatisointisovellus | ||
+ | <!--T:69--> | ||
[[Automysqlbackup]] | [[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
Mysql on kätevä tietokanta, jota on helppo hallinnoida phpmyadmin sovelluksella. Phpmyadmin sovelluksen käyttö vaatii HTTP - palvelinohjelmiston (kuten Apache2 tai Nginx) ja Php5.
Sisällysluettelo
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
Voit ottaa myös mysqldump komennolla
mysqldump --all-databases --single-transaction --user=root --password > all_databases.sql