lunes, 20 de agosto de 2012
jueves, 14 de abril de 2011
domingo, 18 de abril de 2010
Obtener la fecha y hora en MySQL
Código :
select now(); # ejemplo: '2010-01-12 10:50:43'
Obtener solo día mes y año en MySQL
Código :
select CURDATE(); # ejemplo: '2010-01-12' #sin hora
Obtener hora actual en MySQL
Código :
select curTime(); #Selecciona la hora
Obtener día, mes, año, u hora de una fecha en MySQL
El formato de la fecha debe ser YYYY-MM-DD HH:MM:SS, aunque para obtener el año, mes o día solo es necesario YYYY-MM-DD
Código :
select YEAR(NOW()); #Selecciona el año
select MONTH (NOW()) as mes; #Selecciona el mes
select DAY(NOW()) as dia; #Selecciona el día
select TIME(NOW()) as hora; #Selecciona la hora
Select LAST_DAY(NOW()); # Selecciona el ultimo dia del mes
También existe MICROSECOND, SECOND, MINUTE, HOUR, MONTHNAME, etc.
Dar formato a una fecha en MySQL
Para esto usamos Date_format, DATE_FORMAT(fecha,formato); ejemplo:
Código :
select Date_format(now(),'%Y/%M/%d'); # '2010/January/12'
select Date_format(now(),'%Y-%M-%d %h:%i:%s %p'); #'2010-January-12 12:34:29 AM'
select Date_format(now(),'%W %d %M %Y'); # 'Tuesday 12 January 2010'
select Date_format(now(),'El año actual es %Y'); # 'El año actual es 2010'
Estos son algunos de los especificadores que tenemos disponibles para dar formato a una fecha, la lista completa pueden verla en los manuales de MySql:
Código :
- %d #Día del mes numérico (00...31)
- %H #Hora (00...23)
- %h #Hora (01...12)
- %i #Minutos, numérico (00...59)
- %M #Nombre mes (January...December)
- %m #Mes, numérico (00...12)
- %p #AM o PM
- %W #Nombre día semana (Sunday...Saturday)
- %Y #Año, numérico, cuatro dígitos
- %y #Año, numérico (dos dígitos)
- %s #Segundos (00...59)
Sumar o restar días a una fecha con DATE_ADD o DATE_SUB en MySQL
DATE_ADD(fecha,INTERVAL valor tipo), DATE_SUB(fecha,INTERVAL valor tipo)
Sumar tiempo en MySQL
Código :
select DATE_ADD(NOW(),INTERVAL 20 DAY); # Agrega 20 días a la fecha actual
select DATE_ADD(NOW(),INTERVAL 30 MINUTE); # Agrega 30 minutos a la fecha actual
select DATE_ADD(NOW(),INTERVAL 50 YEAR); #Agrega 50 años a la fecha actual
select DATE_ADD(NOW(),INTERVAL '10-5' YEAR_MONTH); #Agrega 10 años 5 meses a la fecha actual
Restar tiempo en MySQL
Código :
select DATE_SUB(NOW(),INTERVAL 8 YEAR); #Resta 8 años a la fecha actual
select DATE_SUB(NOW(),INTERVAL 24 HOUR); #Resta 24 horas a la fecha actual
select DATE_SUB(NOW(),INTERVAL '7-2' YEAR_MONTH); #Resta 7 años dos meses a la fecha actual
Estos son algunos de los argumentos que podemos usar, para una lista completa consulten los manuales de MySql
Código :
SECOND #Segundos
MINUTE #Minutos
HOUR #Horas
DAY #Días
MONTH #Meses
YEAR #Años
YEAR_MONTH #'Años-meses'
DAY_HOUR #'Días Horas'
Restar dos fechas
DATEDIFF(fecha_1,fecha_2) devuelve el número de días entre la fecha fecha_1 y la fecha_2
Código :
SELECT DATEDIFF(NOW(),'2002-11-02'); #cuantos días han pasado
SELECT DATEDIFF(NOW(),'2010-03-20'); #Cuantos días faltan
Espero les sea util
jueves, 26 de noviembre de 2009
Videos de Instalación (Debian lenny y LAMP)
Instalación de Debian Lenny
Instalación de LAMP
miércoles, 25 de noviembre de 2009
Instalando LAMP

El acrónimo LAMP se refiere a un conjunto de subsistemas de software necesarios para alcanzar una solución global, en este caso configurar sitios web o Servidores dinámicos con un esfuerzo reducido.
En las tecnologías LAMP esto se consigue mediante la unión de las siguientes tecnologías:
- Linux, el sistema operativo;
- Apache, el servidor web;
- MySQL, el gestor de bases de datos;
- Perl, PHP, o Python, lenguajes de programación.
La combinación de estas tecnologías es usado primariamente para definir la infraestructura de un servidor web, utilizando un paradigma de programación para desarrollo.
Bueno empezemos a instlar LAMP:
1) Asegurarse que en Ubuntu estan activados los repositorios Universe y Multiverse (un repositorio es una fuente de localidades en internet para aplicaciones), para esto, necesitan abrir el archivo sources.list
sudo gedit /etc/apt/sources.list
en el archivo, deben estar descomentariadas las siguientes lineas:
deb http://security.ubuntu.com/
ubuntu dapper-security universe
deb-src http://security.ubuntu.com/ubuntu dapper-security universe
2) Actualizar la lista de repositorios
sudo aptitude update
3) Instalar Apache 2 (el aptitude, como el apt-get, o el synaptic, hacen las configuraciones automaticamente, uno solo tiene que decir “S” ! ) (aprox 2 mb)
sudo aptitude install apache2
4) Instalar php5 (aprox 2mb)
sudo aptitude install php5
5) Instalar las librerias que permitiran interaccion entre MySql, apache y php (aprox 500kb)
sudo aptitude install libapache2-mod-auth-mysql php5-mysql
6) Instalar MySql server 5 (aprox 50 mb)
MySql 5 : sudo aptitude install mysql-server-5.0
ó
MySql 4.1 : sudo aptitude install mysql-server-4.1
7) Reiniciar los servicios para ponerlos a prueba
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart
por ultimo, ponemos a prueba cada una de las aplicaciones
Apache: abrimos el firefox , y tecleamos en la barra de direcciones : http://localhost
debera aparecernos una pagina donde dice que apache esta instalado y trabajando, para alojar nuestros archivos en el servidor web, en ubuntu la carpeta esta en /var/www
MySql: abrimos la consola y escribimos : mysql -u root
debe salirnos un mensaje de bienvenida y el label del command line ahora debe decir mysql>
php: aqui es necesario crear un archivo y almacenarlo en el directorio raiz del servidor (o crear una subcarpeta, tu decides) /var/www
sudo gedit /var/www/archivo.php
dentro de ese archivo copiamos el codigo php que se nos ocurra, yo recurro al famoso echo, o al
phpinfo()
echo ”Mensaje de prueva en LAMP”;
phpinfo();
?>
por fin, ejecutamos el archivo escribiendo en el firefox : http://localhost/archivo.php
A qui les dejo un archivo q pueden utilizar para vizualizar sus archivos mas rapidamente en el host local de nuestro servidor:
http://rapidshare.com/files/349775358/www_by_gustavorr.rar.html
lo desclomprimen su archivo y copian los tres documentos a la carpeta de /var/www/
Sia un no lo tienes instalado el paquete para descomprimir archivos sigue esto pasos:
#nano /etc/apt/sources.list
deb http://ftp.de.debian.org/debian stable main contrib non-free
guardamos los cambios y cerramos.
En una terminal y como root:
#apt-get update
#apt-get install unrar
y eso es todo ya pueden trabajar de una manera mas grafica y tal vez bonita si no pueden modificar el codigo del archivo index.php
viernes, 4 de septiembre de 2009
Formas de acceder a mysql
# mysql
# mysql -u root -p
Lo primero que debes hacer una vez que instalas un servidor de base de datos MySQL (casi todas las distros actuales lo instalan por defecto, sino, bájalo de mysql.com) es establecer la contraseña del usuario administrador o root, de hecho no tiene que llamarse root, puedes ponerle el nombre que desees. Es muy sencillo, pero hay que entender los alcances de lo que hacemos, asi que veámoslo paso a paso. Una vez arrancado el servicio de mysql (aqui para un tutorial sobre servicios), indicamos en el shell que inicie el monitor mysql:
#> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.26
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Lo primero que notamos es que al iniciar el monitor de mysql o la línea de comandos de MySQL es que no necesitamos de una contraseña, malo, muy malo, porque obviamente cualquiera puede entrar y manipular las bases de datos que tengamos. Asi que vamos a establecer al usuario 'root' como el usuario administrador global de todas las bases de datos, aunque todavía no se hayan creado, y tendrá todos los privilegios sobre estas, asi como la capacidad de otorgar (grant) privilegios a otros usuarios:
mysql> grant all privileges on *.* to root@'localhost' identified by 'sesamo' with grant option;
Query OK, 0 rows affected (0.00 sec)
- grant: es el comando que permite 'conceder' privilegios a un usuario.
- all privileges: se conceden todos los privilegios a este usuario, los posibles privilegios (hasta esta versión 5.0.26) son: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE_TMP_TABLE, LOCK_TABLES, CREATE_VIEW, SHOW_VIEW, CREATE_ROUTINE, ALTER_ROUTINE, EXECUTE y GRANT.
- on: los objetos a los que se aplican los privilegios, el formato es base_de_datos.tabla, *.* quiere decir entonces, todas las bases de datos y todas las tablas. Otros ejemplos: ventas.*, contabilidad.polizas, etc.
- to: el usuario al que se le conceden los privilegios, el formato es usuario@'equipo', en el ejemplo el usuario es 'root' cuando se conecte desde 'localhost', es decir, solo conectado localmente el usuario 'root' tiene acceso total. El comodin en este caso es '%', asi que si se indica root@'%', el acceso podrá ser desde cualquier equipo (no muy buena idea en el caso de root). En 'equipo' es válido una dirección IP, un nombre de dominio o un nombre de dominio con comodines. Ejemplo: sergio@'192.168.10.132', sergio@'linuxtotal.com.mx', sergio@'pruebas.linuxtotal.com.mx', sergio@'*.linuxtotal.com.mx'
- identified by: la contraseña se indica en esta parte y se escribe en texto plano, asi que cuidado con quien esté a tu espalda. Una vez que presiones 'Enter' la contraseña se encripta.
- with grant option: esta última parte es opcional, e indica que el usuario en cuestión puede a la vez otorgrar privilegios a otros usuarios sobre los que el tenga permisos, que en este caso son todos. Aqui se nota la importancia de que 'root' solo sea accesible localmente (localhost) por que queda con posibilidades de otorgrar privilegios a otros usuarios.
Una vez creado el usuario 'root' y si nos salimos del monitor con el comando exit, veamos que sucede si deseamos volver a ingresar:
#> mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#>
Ya no es posible ingresar porque una vez creado un usuario con la opción 'identified by' siempre se requerira que se indique la contraseña para ingresar al monitor, incluso no solo al monitor sino también a herramientas gráficas de administración de MySQL, como phpmyadmin y mysql administrator.
Entonces, ahora debemos indicar la opción '-u' de usuario y '-p' de password para poder ingresar al monitor:
#> 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: 5.0.26
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
También es posible indicar la contraseña inmediatamente después de la '-p' sin espacio:
#> mysql -u root -psesamo
Aunque es obvio que es bastante inseguro este método.
Para terminar con este tip, veamos ahora un ejemplo de como deberíamos crear un usuario que se dedica a capturar pólizas de un sistema de contabilidad, donde queremos que pueda seleccionar, insertar o actualizar pólizas pero no borrarlas ni nada más, muy restringido, además solo puede ingresar desde su PC:
#> 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: 5.0.26
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| linuxtotal |
| mysql |
| contabilidad |
+--------------------+
4 rows in set (0.03 sec)
mysql>
mysql>use contabilidad;
Database changed
mysql> show tables;
+---------------+
| Tables_in_ca |
+---------------+
| catalogos |
| cuentas |
| polizas |
| saldos |
+---------------+
4 rows in set (0.00 sec)
mysql>
mysql> grant select, insert, update on contabilidad.polizas to capturista@'10.0.0.23' identified by 'secreto';
Query OK, 0 rows affected (0.07 sec)
mysql>
Como puede observarse, existen varias bases de datos, una de ellas 'contabilidad' y dentro de esta existen varias tablas. Con el comando grant estamos solo concediendo tres permisos muy específicos de seleccionar, insertar y actualizar registros solo en la tabla 'polizas' de la base de datos 'contabilidad' al usuario 'capturista' cuando se conecte desde el equipo '10.0.0.23' y se identifique con la contraseña 'secreto'. Nótese que no se le concedió la opción with grant option, asi que no podrá este usuario a la vez otorgar ningún privilegio a ningún usuario. Y todo se hizo como el usuario 'root' que es al que inicialmente le concedimos privilegios completos sobre todas las bases de datos y sus tablas.