Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
martes, 17 de julio de 2018
MYSQL - date and time functions
The date_format() function returns a date formatted according to the specified format.
select DATE_ADD( DATE_FORMAT( column,'%Y-%m-%d'), INTERVAL 2 DAY ) as last_updated from table where DATE_ADD( DATE_FORMAT( column,'%Y-%m-%d'), INTERVAL 1 DAY ) > '2018-07-17';
martes, 30 de agosto de 2016
Codeigniter - Database transaction error handling
try {
$this->db->trans_begin();
$res = $this->db->query('AN SQL QUERY...');
if(!$res) throw new Exception($this->db->_error_message(), $this->db->_error_number());
$res = $this->db->query('ANOTHER QUERY...');
if(!$res) throw new Exception($this->db->_error_message(), $this->db->_error_number());
$this->db->trans_commit();
}
catch (Exception $e) {
$this->db->trans_rollback();
log_message('error', sprintf('%s : %s : DB transaction failed. Error no: %s, Error msg:%s, Last query: %s', __CLASS__, __FUNCTION__, $e->getCode(), $e->getMessage(), print_r($this->main_db->last_query(), TRUE)));
}
lunes, 14 de diciembre de 2015
Creating MySQL Backups With AutoMySQLBackup
No hay comentarios
:
Posted by
daycry
at
12:23
Labels:
automysqlbackup
,
Cron
,
Linux
,
MySQL
,
Ubuntu
AutoMySQLBackup is a shell script that lets you take daily, weekly and monthly backups of your MySQL databases using mysqldump. It can back up multiple databases, compress the backups, back up remote databases, and email the logs. This tutorial explains how to install and use it on an Ubuntu 9.10 server.
I do not issue any guarantee that this will work for you!
1 Preliminary Note
AutoMySQLBackup uses mysqldump to create SQL dumps of your databases. Please note that mysqldump will lock your databases while the backup is being created, and this can take from less than a second up to a few minutes, depending on the size of your database. If you're running a high-traffic web site with a large database, then AutoMySQLBackup is not for you!
This script will not help in the event of a hard drive crash. You should copy your backups offline regularly for best protection.
I'm running all the steps in this tutorial with root privileges, so make sure you're logged in as root:
sudo su
2 Using AutoMySQLBackup
You can install AutoMySQLBackup as follows:
aptitude install automysqlbackup
Then open /etc/default/automysqlbackup and take a look at the configuration options. They are all well explained. You should at least configure the following settings:
vi /etc/default/automysqlbackup
[...] # Host name (or IP address) of MySQL server e.g localhost DBHOST=localhost [...] # List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3" # The following is a quick hack that will find the names of the databases by # reading the mysql folder content. Feel free to replace by something else. #DBNAMES="db_ispconfig web1 web2 web3" DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ ` [...] # Backup directory location e.g /backups # Folders inside this one will be created (daily, weekly, etc.), and the # subfolders will be database names. BACKUPDIR="/var/lib/automysqlbackup" [...] # Email Address to send mail to? (user@domain.com) MAILADDR="user@domain.com" [...] |
DBNAMES can contain one or multiple databases, separated by spaces.
If BACKUPDIR does not exist, automysqlbackup will create it automatically (the default directory is /var/lib/automysqlbackup).
If you want to back up local databases, use localhost; if you want to back up remote databases, use the remote hostname (please note that the remote database server must be configured to allow remote connections!).
Now you can run automysqlbackup:
automysqlbackup
Take a look at the /var/lib/automysqlbackup directory...
ls -l /var/lib/automysqlbackup
... and you should find three subdirectories, daily, weekly, and monthly:
root@server1:~# ls -l /var/lib/automysqlbackup total 12 drwxr-xr-x 4 root root 4096 2010-01-27 17:20 daily drwxr-xr-x 2 root root 4096 2010-01-27 17:20 monthly drwxr-xr-x 4 root root 4096 2010-01-27 17:20 weekly root@server1:~#These directories will contain subdirectories named after the databases you chose to backup. For example, if you chose the database db_ispconfig, there will be a directory /var/lib/automysqlbackup/daily/db_ispconfig containing the database dump:
ls -l /var/lib/automysqlbackup/daily/db_ispconfig/ root@server1:~# ls -l /var/lib/automysqlbackup/daily/db_ispconfig/ total 40 -rw------- 1 root root 37016 2010-01-27 17:20 db_ispconfig_2010-01-27_17h20m.Wednesday.sql.gz root@server1:~#The .gz extension means it's compressed. To restore a database, you'd first have to uncompress the dump:
gunzip /var/lib/automysqlbackup/daily/db_ispconfig/db_ispconfig_2010-01-27_17h20m.Wednesday.sql.gz
... (this will give you the uncompressed dump named db_ispconfig_2010-01-27_17h20m.Wednesday.sql in the/var/lib/automysqlbackup/daily/db_ispconfig/ directory) and then restore it as described onhttp://www.howtoforge.com/faq/6_4_en.html.
Of course, you don't want to run automysqlbackup manually all the time. Fortunately, there's a cron job for this in/etc/cron.daily/automysqlbackup which takes care of running automysqlbackup automatically once per day.
viernes, 2 de octubre de 2015
Instalar Linux, Apache, MySQL, PHP (LAMP) en Ubuntu
Paso Uno --- Instalar Apache
El servidor Web Apache es actualmente el mas popular del mundo, lo que hace que sea una buena opción para montar nuestros sitios.Podemos instalar Apache facilmente desde el gestor de paquetes de Ubuntu, apt Un gestor de paquetes nos permite instalar con mayor facilidad un software desde un repositorio conservado por Ubuntu. Puedes aprender más sobre como utilizar apt aquí.
Para nuestros propósitos, podemos iniciar escribiendo los siguientes comandos:
sudo apt -get update
sudo apt -get install apache2
Ya que estamos utilizando el comando sudo, estas operaciones son ejecutadas con privilegios de administrador, por lo que te pedira la contraseña para verificarlo.Después de esto, ya tendremos instalado nuestro servidor web.
Puedes hacer una prueba después de esto para verificar que todo haya ido según lo previsto, visitando la dirección IP pública de tu servidor en el navegador web (ver la nota en el siguiente apartado para averiguar cuál es tu dirección IP pública, si es que no tienes esta información ya).
http://tu_ip_publica
¿Cómo Entontrar la Dirección IP Pública de tu Servidor?
Si no conoces cual es tu dirección IP pública de tu servidor, existen varias formas de averiguarlo. Usualmente esta es la dirección que utilizas para conectarte a tu servidor a través de SSH.Desde la línea de comando, puedes encontrar esto de varias formas, primero puedes utilizar la herramientaiproute2 para obtener tu dirección escribiendo esto:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Esto te devolverá 1 o 2 líneas. Ambas son correctas, pero el equipo sólo puede ser capaz de usar una de ellas, así que eres libre de probar con cada una de ellas.Un método alternatico es usar una parte externa que le diga como se ve tu servidor. Puedes hacer esto pidiendo de un servidor específico cuál es tu dirección IP:
curl http://ip_publicaIndependientemente del método que utilices para obtener tu dirección IP, puedes escribirla en la barra de direcciones de tu navegador para accesar a tu servidor.
Paso Dos ---- Instalar MySQL
Ahora que ya tenemos nuestro servidor web configurado y corriendo, es el momento de instalar MySQL. MySQL es un sistema de gestión de base de datos. Básicamente, se encarga de organizar y facilitar el acceso a las bases de datos donde nuestro sitio puede almacenar información.Una vez más, podemos usar apt para adquirir e instalar nuestro software. Esta vez, también vamos a instalar otros paquetes "ayudantes" que nos permitirán conseguir nuestros componentes para comunicarse unos con otros:
sudo apt-get install mysql-server mysql-client
Durante la instalación, el servidor te pedirá que selecciones y confirmes una contraseña para el usuario "root" de MySQL. Esta es una cuenta administrativa en MySQL que ha aumentado privilegios. Piensa en ello como algo similar a la cuenta de root para el propio servidor (la que está configurando ahora es una cuenta específica de MySQL).Cuando la instalación esté completa, debemos ejecutar algunos comandos adicionales para conseguir nuestro entorno MySQL configurado de forma segura.
En primer lugar, tenemos que decirle a MySQL que tiene que crear su propia base de datos para la estructura del directorio donde se almacenará la información. Puedes hacer esto escribiendo:
sudo mysql_install_dbDespués, debemos ejecutar un simple script de seguridad que elimine algunas configuraciones peligrosas por defecto y bloquear el acceso a nuestro sistema de base de datos un poco. Inicia el script interactivo ejecutando:
sudo mysql_secure_installation
Te pedirá que introduzcas la contraseña que estableciste para la cuenta root de MySQL. A continuación, te preguntará si deseas cambiar la contraseña. Si eres feliz con tu contraseña actual, escribe "n" de "no" en el indicador.Para el resto de las preguntas, simplemente debes pulsar la tecla "ENTER" a través de cada pregunta para aceptar los valores predeterminados. Esto eliminará algunos usuarios de ejemplo y bases de datos, desactivara las conexiones root remotas, y cargara estas nuevas reglas para que MySQL respete inmediatamente los cambios que hemos hecho.
En este punto, el sistema de base de datos ya está configurado y podemos seguir adelante.
Paso Tres - Instalar PHP
PHP es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido procesado a nuestro servidor web para mostrarlo.Una vez más podemos aprovechar el sistema apt para instalar nuestros componentes. Vamos a incluir algunos paquetes de ayuda, así:
sudo apt-get install libapache2-mod-php5 php5 php5-mcrypt
Esto deberá instalar PHP sin ningún problema. Vamos a probar esto en un momento.En la mayoría de los casos, vamos a querer modificar la forma en que Apache sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado index.html Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de preferencia, por lo que vamos a hacer Apache busque un archivo index.php primero.
Para ello, escribe este comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:
sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Queremos mover el índice del archivo PHP destacandolo a la primera posición después de la especificación del DirectoryIndex, así:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Cuando hayas terminado, guarda y cierre el archivo presionando "CTRL-X". Vas a tener que confirmar el guardado escribiendo "Y" y luego pulsando "ENTER" para confirmar la ubicación de almacenamiento de archivos.Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros cambios sean reconocidos. Puedes hacerlo hacerlo ejecutando esto:
sudo service apache2 restart
Instalación de módulos PHP
Para mejorar la funcionalidad de PHP, podemos instalar opcionalmente algunos módulos adicionales.Para ver las opciones disponibles para los módulos de PHP y bibliotecas, puedes ejecutar esto en tu sistema:
apt-cache search php5-Los resultados son todos los componentes opcionales que se pueden instalar. Describiremos brevemente cada uno:
php5-cgi - Del lado del servidor, lenguaje de scripting embebido en HTML (CGI binario) php5-cli - Intérprete de línea de comandos para el lenguaje de scripting PHP5 php5-common - Archivos comunes para paquetes construidos desde fuente PHP5 php5-curl - Módulo CURL para php5 php5-dbg - Símbolos de depuración para PHP5 php5-dev - Archivos para el módulo de desarrollo PHP5 php5-gd - Módulo GD para PHP5Para obtener más información sobre lo que hace cada módulo, puedes buscar en Internet o ver en la descripción larga del paquete escribiendo:
apt-cache show nombre_del_paquete
Habrá una gran muestra de infomación, con un campo llamado Description-en el cual tendrá una explicación más larga de la funcionalidad que el módulo ofrece.Por ejemplo, para averiguar lo que hace el módulo php5-cli podríamos escribir lo siguiente:
apt-cache show php5-cli Junto con una gran cantidad información, podrás ver encontrará algo como esto: . . . SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d Description-en: command-line interpreter for the php5 scripting language This package provides the /usr/bin/php5 command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . The following extensions are built in: bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. Description-md5: f8450d3b28653dcf1a4615f3b1d4e347 Homepage: http://www.php.net/
Paso Cuatro - Prueba del Procesador PHP en el Servidor Web
Con el fin de probar que nuestro sistema se ha configurado correctamente para PHP, podemos crear un script PHP muy básico.Vamos a llamar a este script info.php. Para que Apache pueda buscar el archivo y lo trabaje correctamente, se debe guardar en un directorio muy específico, al cual se le conoce como "raíz".
En Ubuntu 14.04, este directorio se encuentra en /var/www/html/. Podemos crear el archivo en esa ubicación ejecutando:
sudo nano /var/www/html/info.phpEsto abrirá un archivo en blanco. Queremos poner el texto siguiente, que es el código PHP válido, dentro del archivo:
<? Php
phpinfo ();
?>
Ahora podemos probar si nuestro servidor web puede visualizar correctamente el contenido generado por un script PHP. Para probar esto, sólo tenemos que visitar esta página en nuestro navegador web. De nuevo necesitarás la dirección IP pública del servidor.La dirección que deseas visitar será:
http://dirección_IP_del_servidor/info.php
Esta página básicamente te da información sobre el servidor desde la perspectiva de PHP. Es útil para la depuración y para asegurarse de que los ajustes se están aplicando correctamente.Si esto fue un éxito, entonces su PHP está funcionando como se esperaba.
Es posible que desees eliminar este archivo después de esta prueba, ya que en realidad podría dar información sobre el servidor a los usuarios no autorizados. Para ello, puede escribir lo siguiente:
sudo rm /var/www/html/info.phpSiempre se puede volver a crear esta página si necesita acceder a la información nuevamente.
martes, 28 de julio de 2015
Mysql - Activar y visualizar el log de MySQL
En ocasiones no sabemos lo que MySQL hace por debajo. No sabemos si ha llegado a lanzarse la consulta o qué error está dando porque no estamos capturando la excepción en la aplicación que estamos desarrollando.
La alternativa: activar y visualizar el log de MySQL.
Escribe las siguientes secuencias entrando en mysql desde consola.
Primero entra en mysql:
1
| mysql -p |
Luego activa la tabla de log de mysql:
1
| set global general_log=ON |
Pasos básicos: veamos la tabla general_log:
1
2
3
4
5
6
7
8
9
10
11
12
| mysql> describe mysql.general_log;+--------------+------------------+------+-----+-------------------+-----------------------------+| Field | Type | Null | Key | Default | Extra |+--------------+------------------+------+-----+-------------------+-----------------------------+| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP || user_host | mediumtext | NO | | NULL | || thread_id | int(11) | NO | | NULL | || server_id | int(10) unsigned | NO | | NULL | || command_type | varchar(64) | NO | | NULL | || argument | mediumtext | NO | | NULL | |+--------------+------------------+------+-----+-------------------+-----------------------------+6 rows in set (0.07 sec) |
Así que esta tabla la puedes utilizar como una tabla común del esquema “mysql”. Ejemplos:
Si deseamos encontrar las últimas llamadas a mysql.
1
| select * from mysql.general_log order by event_time desc limit 5; |
Si deseamos buscar por una IP concreto que ha lanzado la llamada a esa base de datos:
1
| select * from mysql.general_log where user_host like '%192.168.%' order by event_time desc limit 5; |
OJO! Esta tabla crece y crece sin parar. Es recomendable desactivarla
1
| set global general_log=OFF |
y de vez en cuando limpiarla:
1
| truncate table mysql.general_log; |
Toda ayuda para ver los errores es poca! Espero os sea de utilidad
Suscribirse a:
Entradas
(
Atom
)
Sígueme en las Redes Sociales
Donaciones
Datos personales
Entradas populares
-
En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
-
En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
-
Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
-
Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
-
Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...
© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool



