Ero sivun ”Mysql” versioiden välillä
(6 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
Rivi 60: | Rivi 60: | ||
=== Käyttäjätilit === <!--T:20--> | === 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--> | <!--T:21--> | ||
Rivi 101: | Rivi 108: | ||
<!--T:34--> | <!--T:34--> | ||
− | DROP USER | + | 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--> | == Master ja Slave == <!--T:35--> | ||
Rivi 232: | Rivi 257: | ||
== Varmuuskopio == <!--T:68--> | == Varmuuskopio == <!--T:68--> | ||
+ | |||
+ | Tässä helppo automatisointisovellus | ||
<!--T:69--> | <!--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--> | == Lähteet == <!--T:70--> |
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