Ero sivun ”Mysql” versioiden välillä
(10 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 == | + | == Asennus == <!--T:2--> |
− | [[aptitude]] install mysql-server | + | <!--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> | <gallery> | ||
Tiedosto:Debian mysql installation 1.png|Anna MySQL palvelimen pääkäyttäjälle salasana | Tiedosto:Debian mysql installation 1.png|Anna MySQL palvelimen pääkäyttäjälle salasana | ||
Rivi 16: | Rivi 24: | ||
</gallery> | </gallery> | ||
− | == MySQL Konfiguraatio == | + | == MySQL Konfiguraatio == <!--T:8--> |
+ | <!--T:9--> | ||
Konfigurointi tiedosto löytyy Ubuntussa ja Debianissa: | Konfigurointi tiedosto löytyy Ubuntussa ja Debianissa: | ||
− | /etc/mysql/my.cnf | + | <!--T:10--> |
+ | /etc/mysql/my.cnf | ||
+ | <!--T:11--> | ||
MySQL palvelimen portti jota se kuuntelee. Oletuksena se on 3306. | MySQL palvelimen portti jota se kuuntelee. Oletuksena se on 3306. | ||
− | [client] | + | <!--T:12--> |
+ | [client] | ||
port 3306 | port 3306 | ||
+ | <!--T:13--> | ||
Osoite jota vain kuuntelee, # risuaita eteen niin kuuntelee kaikkia IP-osoitteita. | Osoite jota vain kuuntelee, # risuaita eteen niin kuuntelee kaikkia IP-osoitteita. | ||
− | bind-address = 127.0.0.1 | + | <!--T:14--> |
+ | bind-address = 127.0.0.1 | ||
− | == Komentorivi == | + | == Komentorivi == <!--T:15--> |
+ | <!--T:16--> | ||
Mysql tietokantaa voi hallita komentorivillä tai kätevästi [[phpmyadmin]] websivu ohjelmistolla. | Mysql tietokantaa voi hallita komentorivillä tai kätevästi [[phpmyadmin]] websivu ohjelmistolla. | ||
+ | <!--T:17--> | ||
Voit muodostaa komentorivi näkymään yhteyden: | Voit muodostaa komentorivi näkymään yhteyden: | ||
− | mysql -u root -p | + | <!--T:18--> |
+ | mysql -u root -p | ||
+ | <!--T:19--> | ||
Anna mysql root käyttäjän salasana | Anna mysql root käyttäjän salasana | ||
− | === Käyttäjätilit === | + | === 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: | Uuden kättäjätilin voit luoda komennolla: | ||
− | CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; | + | <!--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ä. | 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:24--> |
+ | GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; | ||
+ | <!--T:25--> | ||
Tämä komento antaa täydelliset oikeudet käyttäjätileille ja tietokantonnoille. | Tämä komento antaa täydelliset oikeudet käyttäjätileille ja tietokantonnoille. | ||
− | GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' WITH GRANT OPTION; | + | <!--T:26--> |
+ | GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' WITH GRANT OPTION; | ||
+ | <!--T:27--> | ||
Vahvista oikeudet: | Vahvista oikeudet: | ||
− | FLUSH PRIVILEGES; | + | <!--T:28--> |
+ | FLUSH PRIVILEGES; | ||
+ | <!--T:29--> | ||
Lisää käyttäjätilille tiettyjä oikeuksia: | Lisää käyttäjätilille tiettyjä oikeuksia: | ||
− | GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’; | + | <!--T:30--> |
+ | GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’; | ||
+ | <!--T:31--> | ||
Poista käyttäjätililtä oikeuksia: | Poista käyttäjätililtä oikeuksia: | ||
− | REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’; | + | <!--T:32--> |
+ | REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’; | ||
+ | <!--T:33--> | ||
Poista käyttäjätili | Poista käyttäjätili | ||
− | DROP USER | + | <!--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 == | + | == Master ja Slave == <!--T:35--> |
+ | <!--T:36--> | ||
MySQL palvelimen asynkroninen synkronointi Masterista Slave palvelimiin. | MySQL palvelimen asynkroninen synkronointi Masterista Slave palvelimiin. | ||
− | === Master === | + | === Master === <!--T:37--> |
+ | <!--T:38--> | ||
Tämä tulee Master palvelimen konfiguraatioon: | Tämä tulee Master palvelimen konfiguraatioon: | ||
− | nano /etc/mysql/my.cnf | + | <!--T:39--> |
+ | nano /etc/mysql/my.cnf | ||
+ | <!--T:40--> | ||
Lisää nämä mysqld loppuun | Lisää nämä mysqld loppuun | ||
− | [mysqld] | + | <!--T:41--> |
+ | [mysqld] | ||
... | ... | ||
log-bin=mysql-bin | log-bin=mysql-bin | ||
Rivi 90: | Rivi 152: | ||
auto_increment_offset = 1 | auto_increment_offset = 1 | ||
+ | <!--T:42--> | ||
Muodosta yhteys MySQL palvelimeen: | Muodosta yhteys MySQL palvelimeen: | ||
− | mysql -u root -p | + | <!--T:43--> |
+ | mysql -u root -p | ||
+ | <!--T:44--> | ||
Luodaan käyttäjätili replicant, kirjautumisoikeudella mistä tahansa % ja salasanalla password. | Luodaan käyttäjätili replicant, kirjautumisoikeudella mistä tahansa % ja salasanalla password. | ||
− | create user replicant@'%' identified by 'password'; | + | <!--T:45--> |
+ | create user replicant@'%' identified by 'password'; | ||
+ | <!--T:46--> | ||
Määritetään käyttäjälle oikeudet: | Määritetään käyttäjälle oikeudet: | ||
Rivi 103: | Rivi 170: | ||
Flush Privileges; | Flush Privileges; | ||
− | === Slave === | + | === Slave === <!--T:47--> |
+ | <!--T:48--> | ||
Tämä tulee Slave palvelimen konfiguraatioon: | Tämä tulee Slave palvelimen konfiguraatioon: | ||
+ | <!--T:49--> | ||
Muodosta yhteys tietokantapalvelimeen ja anna Master palvelimen IP-osoite, käyttäjätunnus ja salasana. | Muodosta yhteys tietokantapalvelimeen ja anna Master palvelimen IP-osoite, käyttäjätunnus ja salasana. | ||
− | HANGE MASTER TO | + | <!--T:50--> |
+ | HANGE MASTER TO | ||
MASTER_HOST='10.10.10.100', | MASTER_HOST='10.10.10.100', | ||
MASTER_USER='replicant', | MASTER_USER='replicant', | ||
MASTER_PASSWORD='password'; | MASTER_PASSWORD='password'; | ||
+ | <!--T:51--> | ||
Käynnistä Slave palvelin | Käynnistä Slave palvelin | ||
− | Start slave; | + | <!--T:52--> |
+ | Start slave; | ||
+ | <!--T:53--> | ||
Varmista että kaikki toimii: | Varmista että kaikki toimii: | ||
− | show slave status\G | + | <!--T:54--> |
+ | show slave status\G | ||
+ | <!--T:55--> | ||
Molempiin suuntiin synkroidessasi, sinun tulee määrittää molemmat palvelimet Slaveksi ja Masteriksi. | Molempiin suuntiin synkroidessasi, sinun tulee määrittää molemmat palvelimet Slaveksi ja Masteriksi. | ||
− | == MYSQL ja PHP5 == | + | == 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 143: | 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 160: | 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]] | ||
− | == Lähteet == | + | 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 | 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