Mostrando las entradas con la etiqueta bash. Mostrar todas las entradas
Mostrando las entradas con la etiqueta bash. Mostrar todas las entradas

20110128

Tips and Tricks - MYSQL - how to dump a database

So you want to backup your mysql database??? Mysql has many ways of doing it, i will explain the easier one: mysqldump.


Being strict, msqldump is not a "backup utility", it creates a script with  "CREATE TABLE" and "INSERT INTO" commands that you can run in your server to re-create your database.  mysqldump  is shipped with MYSQL so everybody should have it installed.

Using mysqldump command line is very straightforward, just type this in your command line or terminal (using your username and password):
mysqldump -u USERNAME -pPASSWORD OUR_DATABASE > filename.sql
This will give us a file (filename.sql) containing "CREATE TABLE" and "INSERT INTO" commands for OUR_DATABASE.
Some times you need to dump ALL your databases (you are moving you dev machine) in your MYSQL server:
mysqldump -u USERNAME -pPASSWORD --all-databases > filename.sql
If you are using MAMP (in macOS), your mysqldump binary is located in /Applications/MAMP/Library/bin/mysqldump.


There is a lot more options here in the official MYSQL documentation: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


To restore our database, we have to we have to run this script in our MYSQL server. You can do it using any utility (phpmyadmin for instance) or jus (again) the command line:
mysql -u USERNAME -pPASSWORD DATABASE_NAME < filename.sql
So, good backup!! ;-)



  

20101117

login ssh sin clave

Es muy común preguntarse como hacer para conectarnos de forma automática a equipos remotos para por ejemplo correr procesos.
O simplemente cómo hacer para entrar a otro equipo desde el nuestro sin tener que poner la clave continuamente. Normalmente uno hace lo siguiente para hacer esta conexión:
usuarioA@diego:~$ ssh usuarioB@servidor
usuarioB@servidor's password:  
Luego ingresamos la clave de usuarioB.  Si tenemos que hacer esto todo el tiempo llega un momento que es bastante tedioso, y peor si tenemos que conectarnos a muchos equipos todos con diferentes claves.

Para solucionar esto, primero tenemos que crear un par de claves en nuestro equipo (o desde donde nos queremos conectar) de la siguiente forma (mi sistema operativo es Ubuntu 10.10):

usuarioA@diego:~> ssh-keygen -t rsa

Si no queremos que nos pida una clave cuando nos conectemos simplemente presionar Enter (esto es muy útil para hacer scripts luego). Esto genera una clave pública y una privada en el directorio ~/.ssh

Luego tenemos que copiar la clave publica al equipo al que queremos conectarnos, en este caso el equipo se llama "servidor" con el usuario "usuarioB". Primero tenemos que crear la carpeta ~/.ssh en servidor:
usuarioA@diego:~> ssh usuarioB@servidor mkdir -p .ssh 
usuarioB@servidor's password: 
Luego hay que agregar nuestra clave publica al  .ssh/authorized_keys de servidor :

usuarioA@diego:~> cat .ssh/id_rsa.pub | ssh usuarioB@servidor 'cat >> .ssh/authorized_keys'
usuarioB@servidor's password: 
Ahora nos podemos conectar directamente sin ingresar la clave

usuarioA@diego:~$ ssh usuarioB@servidor
usuarioB@servidor:~$