MySQL Tutorial

El objetivo de este Tutorial es darte una idea basica sobre MySQL y servir como manual de referencia para la sintaxis de aquellos comandos que no recordamos cuando son necesarios.

Instalación:

Si estás usando RedHat 7.1, la instalación de mysql es fácil. Coge el segundo CD de la distribucion y montalo, busca esto:

mysql-3.23.36-1.i386.rpm
mysqlclient9-3.23.22-4.i386.rpm
mysql-devel-3.23.36-1.i386.rpm
mysql-server-3.23.36-1.i386.rpm
php-mysql-4.0.4pl1-9.i386.rpm

mysql-devel es para los programadores que quieran crear su software basado en mysql .
php-mysql es el soporte PHP  para MySQL.

Si estás usando cualquier otra distribución de Linus, leete la documentación o ve a : MySQL download area  bajatelo y compilalo siguiendo las instrucciones de la web de MySQL.

Ahora siendo root instala los paquetes .rpm : rpm -ivh mysql*.rpm
Instala también rpm -ivh php-mysql*.rpm y sigue los siguientes pasos
Ahora debemos activar el demonio (servidor)
En RedHat escribe: setup desde la consola, selecciona System Services y activa mysqld, luego reinicia y el demonio estará activo.

Una vez Instalado:

Atención: Alerta de Seguridad.
La primera vez que lo arranques: Cambia el password de root utilizando estos comandos:

mysql
use mysql;
select * from user;
mysqladmin -uroot -hlocalhost password nuevopassword
mysqladmin -uroot -htuhostname password nuevopassword
Como hay 2 entradas en la tabla de usuarios. Esto significa que el usuario root puede acceder a tu base de datos desde el host localhost y desde el host tuhostname.

Para crear un usuario standard con acceso a una base de datos:

create database nombrebasededatos;
grant select,insert,update,delete,create,drop,alter,index on nombrebasededatos.* to nombreusuario@localhost identified by 'elpassword';

Estamos dando a nombreusuario acceso a nombrebasededatos para poder: select,insert,update,delete,create,drop, alter, index (o sea: listar, insertar, actualizar, borrar filas, crear, borrar tablas, alterar tablas y indexar) cuando conecte desde localhost usando un password.

Normalmente nombrebasededatos y nombreusuario son los dos iguales. (solo por comodidad)

Comandos basicos de MySQL:
Escribe esto si tu estas en la consola del servidor o si usas un servidor remoto tan solo telnet nombrehost:

mysql -hlocalhost -uroot -p
(estamos en localhost y user=root y tenemos que entrar un password para entrar en MySQL)

Algunos comandos de ejemplo para practicar:

create database nombrebasededatos;
show databases;
use nombrebasededatos;
create table nombretabla (campo1 integer,campo2 char(50));
create table nombretable (campo1 integer not null auto_increment,campo2 integer, primary key (campo1));
insert into nombretabla values (666,"cualquiertextot"),(777,"otrotextot");
select * from nombretabla;
show tables;
Para crear un usuario con todos los privilegios en todas las bases de datos que conecta desde un host específico:

grant all privileges on *.* to nombreusuario@192.168.0.this identified by 'elpassword';
Para hacer lo mismo pero permitiendo conectar desde cualquier ordendador:
grant all privileges on *.* to nombreusuario@"%" identified by 'elpassword';

Para ver la estructura de los campos:
show columns from nombretabla;
o
describe tablename;  

Borrar la tabla y su esctructura:
drop table nombretabla;
Borrar solo las filas que uno quiera:
delete from nombretabla where campo=valor;
Cambiar el valor de un campo:
update nombretabla set campo=nuveovalor where condicion;

Consultas Especificas:
select sum(campoasumar) as total from nombretabla where condicion;
      (sum,max,min,count,avg)
      (...where surname in ('velez','smith','lee'))
      (...where price between 1000 and 5000))
      (...where price not between 1000 and 5000))
select * from nombretabla order by nombrecampo limit cuantos;
select fieldname from nombretabla where nombrecampo like 'principiopalabra%';
      (las correspondencias son: * is %,  ? is  _)

Importando de otras bases de datos:

Para convertir una Base de Datos de Microsoft Access para usar en MySQL, tu debes: En el Access, selecciona la tabla y presiona en exportar, en tipo de fichero, escoge .txt, delimitado,tabulacion, qualificardor de texto=ninguno, envia el fichero por FTP a tu cuenta y luego este commando hará el resto:

load data local infile "fichero.txt" into table nombretabla;

Hacer y Restaurar copias de seguridad de tu Base de Datos:

Te sugiero que leas el  Tao of Backup
Hacer una copia de seguridad de tu base de datos en un fichero:
mysqldump -unombreusuario -ppassword -hnombredelhost nombrebasededatos > fichero.sql
Este (fichero.sql) almacenará toda la información ( estructura y datos de la base de datos) necesaria para crearla de nuevo. Atención: Esto no incluye los usuarios y los permisos ( eso es tarea del administrador de la base de datos)
Para restaurar los datos:
mysql -unombreusuario -ppassword -hnombredelhost nombrebasededatos < fichero.sql

Aceder a otras bases de datos:

Utilizando MyODBC  puedes usar una Base de Datos de Microsoft Access
Panel de Control  , ODBC, DNS de USUARIO

Windows DNS name: Test
MySQL host (name or IP): tunombrehostoIP
MySQL nombrebasededatos: nombrebasededatos
password:  tupassword
port: 3306


Compilando tu código en C que usa funciones de MySQL :

Debes instalar MySQL developer para poder hacer esto:
gcc -I/usr/include/mysql -L/usr/lib/mysql -o nombredelejecutable mifichero.c -lmysqlclient



by: drdoom@sorgonet.com
www.sorgonet.com