MySQL - Amministrazione

Esecuzione e chiusura di MySQL Server

Innanzitutto controlla se il tuo server MySQL è in esecuzione o meno. Puoi usare il seguente comando per controllarlo:

ps -ef | grep mysqld

Se il tuo MySql è in esecuzione, vedrai mysqldprocesso elencato nel risultato. Se il server non è in esecuzione, è possibile avviarlo utilizzando il seguente comando:

root@host# cd /usr/bin
./safe_mysqld &

Ora, se vuoi chiudere un server MySQL già in esecuzione, puoi farlo usando il seguente comando:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

Configurazione di un account utente MySQL

Per aggiungere un nuovo utente a MySQL, è sufficiente aggiungere una nuova voce al file user tabella nel database mysql.

Il seguente programma è un esempio di aggiunta di un nuovo utente guest con i privilegi SELECT, INSERT e UPDATE con la password guest123; la query SQL è -

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user 
   (host, user, password, 
   select_priv, insert_priv, update_priv) 
   VALUES ('localhost', 'guest', 
   PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
|    host   |   user  |     password     |    
+-----------+---------+------------------+
| localhost |  guest  | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

Quando si aggiunge un nuovo utente, ricordarsi di crittografare la nuova password utilizzando la funzione PASSWORD () fornita da MySQL. Come puoi vedere nell'esempio sopra, la password mypass è crittografata in 6f8c114b58f2ce9e.

Notare la dichiarazione FLUSH PRIVILEGES. Questo dice al server di ricaricare le tabelle di concessione. Se non lo usi, non sarai in grado di connetterti a MySQL utilizzando il nuovo account utente almeno fino a quando il server non verrà riavviato.

È inoltre possibile specificare altri privilegi per un nuovo utente impostando i valori delle seguenti colonne nella tabella utente su "Y" durante l'esecuzione della query INSERT oppure è possibile aggiornarli in seguito utilizzando la query UPDATE.

  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv

Un altro modo per aggiungere un account utente è utilizzare il comando GRANT SQL. Il seguente esempio aggiungerà userzara con password zara123 per un database particolare, denominato TUTORIALS.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use mysql;
Database changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
   -> ON TUTORIALS.*
   -> TO 'zara'@'localhost'
   -> IDENTIFIED BY 'zara123';

Questo creerà anche una voce nella tabella del database MySQL chiamata come user.

NOTE - MySQL non termina un comando fino a quando non si inserisce un punto e virgola (;) alla fine del comando SQL.

La configurazione del file /etc/my.cnf

Nella maggior parte dei casi, non dovresti toccare questo file. Per impostazione predefinita, avrà le seguenti voci:

[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock

[mysql.server]
user = mysql
basedir = /var/lib

[safe_mysqld]
err-log = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid

Qui puoi specificare una directory diversa per il registro degli errori, altrimenti non dovresti modificare nessuna voce in questa tabella.

Comando amministrativo MySQL

Ecco l'elenco degli importanti comandi MySQL, che utilizzerai di volta in volta per lavorare con il database MySQL:

  • USE Databasename - Questo verrà utilizzato per selezionare un database nell'area di lavoro MySQL.

  • SHOW DATABASES - Elenca i database accessibili dal DBMS MySQL.

  • SHOW TABLES - Mostra le tabelle nel database una volta che un database è stato selezionato con il comando use.

  • SHOW COLUMNS FROM tablename: Mostra gli attributi, i tipi di attributi, le informazioni sulla chiave, se NULL è consentito, i valori predefiniti e altre informazioni per una tabella.

  • SHOW INDEX FROM tablename - Presenta i dettagli di tutti gli indici sulla tabella, inclusa la CHIAVE PRIMARIA.

  • SHOW TABLE STATUS LIKE tablename\G - Riporta i dettagli delle prestazioni e delle statistiche del DBMS MySQL.

Nel prossimo capitolo, discuteremo di come viene utilizzata la sintassi PHP in MySQL.