Repository 32bit  Forum
Repository 64bit  Wiki

Mysql - Mini How-to

Da Slacky.eu.

Indice

Introduzione

A tutti capita che dopo aver installato slackware, il demone mysql fa capricci sia se si cerca di farlo partire automaticamente all'avvio (tramite gli script contenuti nella cartella /etc/rc.d/), sia se si cerca di farlo partire manual- mente (eseguendo da root mysqld_safe con le apposite opzioni). I motivi di questo disagio sono un paio e ho scritto questo howto perche` ho notato che molti tra coloro che iniziano ad usare slackware non sanno come fare (e credo sia una cosa del tutto normale).

Preparazione Database

Le operazioni che verranno eseguite d'ora in avanti richiedono i privilegi di root, quindi eseguite:

$ su 

Inserite la password e via ;)

Cercare di far partire il demone mysql (d'ora in poi mysqld) senza avere i databases installati non mi sembra affatto una buona idea, quindi per iniziare eseguiamo:

# mysql_install_db

Questa operazione e` necessaria poiche` mysqld utilizza il database 'mysql' per la gestione degli utenti che avranno accesso al server. Ne riparliamo piu` tardi, comunque. Ora verificate che esistano lo user e il group mysql (potete verificare dai files /etc/passwd e /etc/group). Se non esistono li doveste creare voi tramite:

# /usr/sbin/groupadd mysql
# /usr/sbin/useradd -g mysql mysql

NON SARA` NECESSARIO NE` PERTINENTE eseguire:

# /usr/bin/passwd mysql 

perché l'utente mysql non ha bisogno di una password. Fisicamente non dovrà mai loggarsi, ma serve solo per eseguire mysqld.

Una volta verificato cio` dovremo cambiare i proprietari di alcuni files:

# /bin/chown -R mysql:mysql /var/lib/mysql/

Non indispensabile:

# /bin/chown -R mysql:mysql /var/run/mysql/

L'errore che mysqld ritorna e` appunto inizialmente un problema di databases non presenti nella cartella /var/lib/mysql (infatti mysql_install_db installa i databases proprio in /var/lib/mysql) e successivamente un problema di accesso negato ai files contenuti in /var/lib/mysql e in /var/run/mysql (in cui e` contenuto il pid-file).

Il demone

A questo punto per far partire il demone mysql:

# /bin/chmod +x /etc/rc.d/rc.mysqld
# /etc/rc.d/rc.mysqld start

Una volta che il server e` partito tranquillamente e` possibile impostare una password per l'utente root di mysqld:

# mysqladmin -u root password VOSTRAPWD

E per avviare il client mysql come root:

# mysql -u root -p

Vi verra` chiesta VOSTRAPWD per effettuare l'accesso.

Una volta dentro dovrebbe apparirvi qualcosa del genere:

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: VERSIONE

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

Alcuni Esempi

Eseguendo delle query basilari potrete muovervi attraverso i databases, ad esempio:

mysql> SHOW DATABASES;   /* Mostra i databases presenti */
+--------------------+
| Database           |
+--------------------+
| black_db           |
| main               |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Nel database mysql sono raccolte le informazioni piu` importanti sul vostro server mysql. State attenti a cio` che fate ;) Altre query basilari per 'muovervi' potrebbero essere:

mysql> USE black_db; /* Ordina al client di cambiare il database in uso.
		      *	Sono necessari alcuni privilegi per usare un 
		      *	database. In questo caso stiamo ordinando di usare
		      * black_db */

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW TABLES;  /* Mostra tutte le tabelle in un database */
+--------------------+
| Tables_in_black_db |
+--------------------+
| bookmarks          |
| sections           |
+--------------------+
2 rows in set (0.00 sec)

mysql> DESCRIBE bookmarks; /* Mostra la struttura di una tabella.
			    * In questo caso verra` visualizzata la
			    * struttura della tabella bookmarks. */
+-------+-----------------+------+-----+---------+----------------+
| Field | Type            | Null | Key | Default | Extra          |
+-------+-----------------+------+-----+---------+----------------+
| id    | int(5) unsigned | NO   | PRI | NULL    | auto_increment |
| url   | text            | NO   |     |         |                |
| nome  | text            | NO   |     |         |                |
| sect  | varchar(20)     | NO   |     |         |                |
+-------+-----------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)

Se eseguirete:

mysql> USE altro_database;

il database in uso ovviamente verra` cambiato in `altro_database`. Per creare nuovi utenti vi consiglio di eseguire le query GRANT. Per maggiori informazioni consultate la documentazione su www.mysql.org

Autore: black - black@autistici.org

Strumenti personali
Namespace

Varianti