Come esportare una tabella MySQL in csv


Cosa facile facile …

mysql -u[username] -p[password] [nome_database] -B -e “select * from \`[nome_tabella]\`;” | sed ‘s/\t/”,”/g;s/^/”/;s/$/”/;s/\n//g’ > /var/www/html/mysql_exported_table.csv

Annunci

Piccola sicurezza di MySQL …


Spesso e volentieri l’attività di SysADM è gravosa. Ma basta poco 😀
Ad esempio per avviare il processo di messa in sicurezza di MySQL su una macchina CentOS basta digitare:

mysql_secure_installation

Basta poco, che ce vò ?

Installazione manuale di più istanze di MySQL


Installare MySQL su Linux è abbastanza semplice

apt-get install mysql-server

Ma se abbiamo l’esigenza di installare più di un’istanza di MySQL? Posto che i binari di MySQL siano in /usr/localprocediamo creando dei link simbolici

ln -s /usr/local/mysql-path /usr/local/mysql-uno

ln -s /usr/local/mysql-path /usr/local/mysql-due

Meglio non collocare my.cnf in /etc mettendolo invece in ciascuna directory

touch /usr/local/mysql-uno/my.cnf

touch /usr/local/mysql-due/my.cnf

Per ciascun file di configurazione impostiamo una diversa porta

[mysql]
port=9950

[mysqld]

port=9950

ad esempio per “mysql-uno”.
Quindi distinguiamo i socket


[mysql]

port=9950

socket=/tmp/mysql-uno.sock

[mysqld]

port=9950

socket=/tmp/mysql-uno.sock

distinguiamo anche i “data paths”


[mysql]

port=9950

socket=/tmp/mysql-uno.sock

[mysqld]

port=9950

socket=/tmp/mysql-uno.sock

datadir=/san/mysql-uno/

E, infine, creaiamo i demoni personalizzati in /etc/init.d/

cp /usr/local/mysql-uno/support_files/mysql.server

/etc/init.d/mysqld-uno

cp /usr/local/mysql-due/support_files/mysql.server

/etc/init.d/mysqld-due

ln -s /usr/local/mysql-uno/bin/mysql /usr/bin/mysql-uno

ln -s /usr/local/mysql-due/bin/mysql /usr/bin/mysql-due

chkconfig -add mysqld-uno

Dataset di esempio con MySQL


Capita che per lavoro si debba utilizzare un dataset di un database MySQL in produzione molto grosso. Vediamo come fare con mysqldump.

mysqldump –opt –where=”true LIMIT 5000″ dbinproduzione > miodbditest.sql

che permette di ottenere un nuovo database con 5000 record (al massimo) per ogni tabella. Se invece volessimo agire sulla dimensione di una singola tabella

mysqldump –opt –where=”true LIMIT 5000″ dbinproduzione tabella > miodbditest_tabella.sql

Per effettuare il restore

mysql -p mio_stage_di_test < miodbditest.sql

MySQL monitor: mtop


mtop permette di monitorare il funzionamento di una istanza MySQL in tempo reale.

Visualizza, tra l’alto, il numero di interrogazioni (query) eseguite per secondo, le interrogazioni più lente, il numero di processi attivi.

Per installarlo, su Ubuntu

sudo apt-get -y install mtop

Per avviarlo

mtop -se 1