Es importante mantener el tema de mysql, por tradicion, de hecho existe hoy en esta distribucion de Linux Centos se instala por omision con MARIADB, pero porque algunos todavia tenemos aplicaciones en Mysql resulta necesario poder tener esta posibilidad.
URL de Referencia: Instalar Mysql en Centos7
Mostrando entradas con la etiqueta Centos - Mysql. Mostrar todas las entradas
Mostrando entradas con la etiqueta Centos - Mysql. Mostrar todas las entradas
sábado, septiembre 26, 2015
sábado, noviembre 15, 2014
Cómo hacer un Procedimiento Almacenado en MySQL sin morir en el intento
Antes de escribir un sólo comando les recomiendo ampliamente instalar el MySQL Workbench no saben el dolor de cabeza que les quitará su validador (me lo agradecerán de por vida), lo pueden descargar de aquí.
Pues bien, lo primero que explicaré será el comando DROP PROCEDURE IF EXISTS, este comando sirve para eliminar el PA si previamente existe (NOTA: este debe ser agregado antes del DELIMETER), esto es útil por ejemplo cuando estamos modificando nuestro PA y necesitamos estar actualizandolo constantemente, la sintaxis sería así:
- DROP PROCEDURE IF EXISTS myProcedure;
Bien, una vez visto eso, el siguiente comando que veremos será el DELIMETER, se refiere a escribir un delimitador para nuestras consultas SQL, este delimitador se debe específicar cuando vamos a tener varias consultas dentro de nuestro PA para decirle a MySQL que todo lo que este dentro de ese delimitador formará parte de ese PA, tu puedes elegir cualquier delimitador, pero entre los más comunes están:
- DELIMETER //
- ....
- //
O bien:
- DELIMETER $$
- ....
- $$
Después de escribir nuestro delimitador, vamos a crear nuestro PA con el comando CREATE PROCEDURE, cuya sintaxis debe ser así:
- CREATE PROCEDURE myProcedure({[PARAMS]})
- BEGIN
- ....
- END
Sin duda muchos verán que esto es similar a cuando programabas en Pascal o un lenguaje prehístorico dónde tenías que específicar los bloques de INICIO y FIN, y los parámetros aquí son opcionales.
Parámetros
Cuando creamos un nuevo PA los parámetros son opcionales y sin duda estos son de gran ayuda cuando necesitamos pasar algunos valores, la forma de específicar estos parámetros es la siguiente:
- CREATE PROCEDURE myProcedure(
- IN _language VARCHAR(2),
- IN _page INT,
- IN _max INT)
- BEGIN
- ....
- END
Cuando son muchos parámetros una buena técnica de separación y para poder ordenar y ver mejor los parámetros es dar un enter a cada uno y separarlos por comas (,). La sintaxis para estos parámetros es simplemente escribir el comando IN seguido del nombre del parámetro (recomiendo poner guiones bajos al principio de cada parámetro, leer la explicación en el siguiente párrafo) y después específicar su tipo (INT, VARCHAR, TINYINT, etc.).
Declaración de variables
Cuando creamos un PA en MySQL esté nos permite crear variables para poder asignarles algún valor e inclusive hacer ciertas validaciones, para declarar una variable se debe utilizar el comando DECLARE, una recomendación personal es que todas las variables que vayas a crear en tu PA les antepongas un guión bajo (_) y además utilices la técnica de camelCase, esto se debe a que muchas veces utilizamos variables con nombres genéricos que pudieran ser palabras reservadas de MySQL y esto nos puede causar problemas sin que nos demos cuenta en un principio y es muy complicado encontrarlos, por ejemplo si declaramos la variable "status", nos puede causar conflicto puesto que STATUS es una palabra reservada que utiliza MySQL como comando, en este caso para ver los PAs existentes con SHOW PROCEDURE STATUS, este caso lo mejor sería declararla como "_status" y nos libramos de problemas, unos ejemplos de variables serían:
- DECLARE _start INT DEFAULT 0;
- DECLARE _limit1 INT DEFAULT 0;
- DECLARE _limit2 INT DEFAULT 0;
- DECLARE _language VARCHAR(2) DEFAULT 'en';
Una vez que hemos declarado nuestras variables si necesitamos asignarle algún valor diferente en algún punto de nuestro código podemos utilizar el comando SET, de la siguiente manera:
- IF _page > 0 THEN
- SET _limit1 = _page * _max - _max;
- END IF;
Comparaciones IF... THEN ... ELSE ... END IF
Cómo en todo lenguaje hay veces que necesitamos hacer bifurcaciones a nuestros códigos y tomar caminos distintos dependiendo de la situación, pues en MySQL tenemos la posibilidad de utilizar los IFs al crear nuestros PAs, aunque sin duda se utilizan un poco de manera un poco "rudimentaria" y me recuerda a Pascal sin duda alguna, pero bueno aquí te dejo algunos bloques de IFs que puedes utilizar.
- IF _variable1 > 0 AND _variable2 == 1 THEN
- ....
- END IF;
- IF _variable1 > 0 OR _variable2 == 1 THEN
- ....
- ELSE
- ....
- END IF;
- IF _variable1 == 0 OR _variable2 == 1 THEN
- ....
- ELSE
- IF _variable1 <> 5 THEN
- ....
- END IF;
- END IF;
Selects
Los SELECT en MySQL normalmente los utilizamos para "seleccionar" ciertos campos y hacer ciertas condiciones para que nos regresen ciertos registros dentro de X tabla. Aunque en un PA sirven para lo mismo también tienen otra funcionalidad y es la de "regresar" los valores seleccionados como resultados (es decir, como que si fueran un RETURN de una función, cabe destacar que con PA no se puede utilizar RETURN).
No tan sólo sirve para "Seleccionar" registros de una db, también sirve para "Seleccionar" una variable o ciertos valores que queramos enviar "de regreso cómo resultado".
Un claro ejemplo es cuando tenemos la necesidad de hacer un "debug" a nuestros PA, la manera más fácil de hacerlo es crear un PA llamado debug, de la siguiente manera:
- DELIMITER $$
- CREATE PROCEDURE debug(msg VARCHAR(255))
- BEGIN
- SELECT CONCAT("*** ", msg) AS '*** DEBUG:';
- END $$
- DELIMITER
En el PA debug, recibimos cómo parámetro un "mensaje" o texto el cual enviaremos cuando queramos "debuggear" algún valor o variable de otro PA. La función CONCAT cómo su nombre lo indica sirve para concatenar una cadena con otra, en este caso concatenar los *** con el mensaje, y esto para que podamos identificar fácilemente el mensaje de debug que nos regresa, en otro PA, se puede utilizar simplemente mandandolo a llamar de la siguiente manera:
- DROP PROCEDURE IF EXISTS getPosts;
- DELIMITER $$
- CREATE PROCEDURE getPosts(
- IN _language VARCHAR(2),
- IN _page INT,
- IN _max INT)
- BEGIN
- DECLARE _start INT DEFAULT 0;
- DECLARE _limit1 INT DEFAULT 0;
- DECLARE _limit2 INT DEFAULT 0;
- SET _limit1 = 0;
- SET _limit2 = _max;
- CALL debug(_limit2);
- END $$
- DELIMITER ;
De esa manera podremos saber que valor tiene la variable "_limit2", y ese valor lo podremos ver en nuestro resultset cuando ejecutemos nuestro PA.
Regresando un poco al tema de los SELECT, cómo decía, en un PA podemos tener tantos SELECT cómo queramos y cada uno nos regresará un resultset, quiere decir, supongamos que usamos PHP para llamar ese PA, normalmente cuando hacemos una consulta "sencilla" en PHP nos regresa los valores en una matriz algo tipo:
- [0] => Array([0] => ["Campo"] => valor);
Pero cuando mandamos 2 ResultSets, en este caso el del Debug y el de los valores, recibiremos algo así (espero se entienda la idea):
- [0] => Array([0] => ["**Debug:"] => 'EL MENSAJE DEL DEBUG'); // Debug resultset
- [1] => Array([0] => ["Campo"] => valor); // Valores resultset
Cómo último consejo les digo que la clausula LIMIT solamente acepta valores de tipo INT divididos en 2 variables, por eso ven las variables _limit1 y _limit2, en un principio yo intentaba hacerlo concatenando los valores en un string tipo "0, 12", pero jamás resulto, es un buen tip que les puede servir, y bueno aquí les dejo el PA que hice ayer y espero les pueda servir un poco cómo ejemplo, es para obtener los posts de un blog, los veo en la siguiente publicación, saludos. No olviden escribir sus dudas en los comentarios.
- DROP PROCEDURE IF EXISTS getPostsByCategory;
- DELIMITER $$
- CREATE PROCEDURE getPostsByCategory(
- IN _category VARCHAR(100),
- IN _language VARCHAR(2),
- IN _page INT,
- IN _max INT)
- BEGIN
- DECLARE _start INT DEFAULT 0;
- DECLARE _limit1 INT DEFAULT 0;
- DECLARE _limit2 INT DEFAULT 0;
- SET _limit1 = 0;
- SET _limit2 = _max;
- IF _page > 0 THEN
- SET _limit1 = _page * _max - _max;
- END IF;
- SELECT COUNT(1) AS total
- FROM (
- SELECT blog_posts.id FROM blog_posts
- LEFT JOIN blog_re_categories2posts ON (blog_re_categories2posts.postId = blog_posts.id)
- LEFT JOIN blog_categories ON (blog_categories.id = blog_re_categories2posts.categoryId)
- WHERE blog_categories.slug = _category
- GROUP BY blog_posts.id
- ) AS Result;
- SELECT title, blog_posts.slug, excerpt, content, author, mainImage, createdAt, day, month, year, blog_posts.language, GROUP_CONCAT(blog_categories.category SEPARATOR ', ') AS categories
- FROM blog_posts
- LEFT JOIN blog_re_categories2posts ON (blog_re_categories2posts.postId = blog_posts.id)
- LEFT JOIN blog_categories ON (blog_categories.id = blog_re_categories2posts.categoryId)
- WHERE blog_categories.slug = _category
- AND blog_posts.language = _language
- AND blog_categories.language = _language
- AND blog_posts.situation = 'Published'
- GROUP BY blog_posts.id
- ORDER BY blog_posts.id DESC
- LIMIT _limit1, _limit2;
- END $$
- DELIMITER ;
Para mandar a llamar los PA simplemente se utiliza el comando CALL en nuestra query.
- See more at: http://www.codejobs.biz/es/blog/2014/07/09/como-hacer-un-procedimiento-almacenado-en-mysql-sin-morir-en-el-intento#sthash.6X4pBcKv.eSPatRJj.dpuf
- CALL myProcedure(1, 2, 'Valor string', 3);
- // En PHP sería algo tipo:
- $query = mysqli_query("CALL myProcedure(1, 2, 'Valor string', 3)");
martes, agosto 13, 2013
Iseries Db2 A Mysql con Migration Toolkit
Una de las tareas recurrentes a la que nos enfrentamos quienes
estamos dedicados al desarrollo de sistemas o a la administración
de bases de datos es la migración de información entre difrentes o
iguales SGBD. Actualmente, cada motor de base de datos ofrece en mayor o
menor medida, herramientas que facilitan estas tareas. En este artículo
trataré el caso de Mysql que incluye en su paquete de instalación un
programa destinado a migrar datos desde cualquier motor que proporcione
una interfaz de conexión JBDC.
Que necesitaremos?
Bueno, antes de iniciar con el proceso será necesario que tengas instalado en tu equipo lo siguiente:
Lo primero que tendremos que hacer es copiar los .jar de IBM que nos permitirán comunicarnos con Iseries. Para ello, dependiendo de tu sistema operativo, iremos a la carpeta de instalación del client access que en mi caso es: C:\Program Files\IBM\Client Access Luego buscaremos la ruta jt400 y entraremos a lib. La ruta de acceso completa es: C:\Program Files\IBM\Client Access\jt400\lib. Una vez que hemos llegado a este directorio vamos a seleccionar los siguientes archivos de extensión Jar:
Ahora. ejecutaremos el programa “Mysql Migration ToolKit” que está en Inicio / Programas / Mysql la pantalla inicial que veremos es la siguiente:


Esta pantalla es muy importante pues nos permite saber si el programa cuenta con los requerimientos mínimos para ejecutarse. Como podemos observar en la imagen a la izquierda, tanto el Java Loader como el entorno de ejecución deben encontrarse inicializados.
Hecho esto presionamos el botón “Next” para continuar a la pantalla “configuration type”

Aquí nos aparecerán dos opciones. Para el caso que nos ocupa seleccionaremos “Direct Migration”
Después presionaremos “Next” para continuar con el proceso. El programa nos mostrará la pantalla “Source Database”. Es en esta pantalla donde estableceremos la configuración del origen de datos.

Al dar click en Database System, veremos que el programa soporta la migración por default de orígenes tan diversos como SqlServer, Oracle, Sybase, Etc. Para casos como el de DB2 que no está contemplado por defecto, tendremos que seleccionar “Generic Jdbc”. Seleccionado esto nos aparecerá en la parte inferior de la ventana , el cuadro de configuración de la conexión.

La información que deberemos capturar es la siguiente:

Ya que la base de datos destino es el propio mysql, la configuración nos va a resultar familiar pues solo deberemos indicar ip del servidor, nombre de usuario y contraseña. Presionamos ”Next” para continuar a la siguiente pantalla, donde, si hemos configurado correctamente nuestras conexiones nos mostrará la siguiente información.

Hasta este punto solo hemos configurado la conexión entre mysql y Db2 por lo que al presionar el botón “Next” comenzaremos a configurar tanto el origen como el destino de los datos a migrar. La pantalla que nos aparece “Source schemadata selection” nos muestra los schemas del servidor de base de datos y nos pide seleccionemos del cuál queremos migrar datos.

Seleccionamos el schema del que deseamos migrar información y presionamos siguiente.
La
pantalla inicia el proceso de ingeniería inversa para obtener la
información de objetos en el schema seleccionado. Una vez que ha
finalizado el análisis presionamos “Next”
En esta pantalla el programa nos muestra el total de objetos que ha encontrado en el schema seleccionado.

Si el objetivo es migrar el total de tablas encontradas da click en “Next” para continuar con el siguiente paso. De otra manera tendrás que dar click en “Detailed selection” para elegir la o tablas a migrar.

Como podemos ver en la pantalla previa, se nos muestra el contenido del schema seleccionado donde podemos elegir la tabla o tablas a migrar. Presionamos “Next” para continuar.
En esta nueva pantalla tendremos que establecer las opciones de migración tanto para el origen como para el destino. Si no tienes mucha experiencia con los Engines de mysql así como el collation te recomiendo que intentes la migración con los valores por default.


Presionamos “Next” para continuar. y el programa comenzará a generar el bloque de sentencias DDL para la migración de datos. Una vez que haya finalizado presionamos ”Next”

Si todo es correcto, nos dará un mensaje indicándonos que el mapeo se ha realizado correctamente. Presionamos siguiente.

En esta parte del asistente podemos elegir entre crear los objetos al vuelo o, si queremos verificar la definición de nuestros campos generar el script con todo el bloque de sentencias DDL para la migración. Seleccionamos la creación OnLine y presionamos “Next”

En este momento se comenzarán a crear los objetos seleccionados para su migración. Al finalizar el proceso podremos ver el resultado. Presionamos “Next” al ver que todo va bien en este punto.

El programa nos confirma que todo va bien. Aquí es importante mencionar que de ocurrir algún error en la creación de los objetos, se nos mostrará los problemas al seleccionar el filtro: “Show create problems”. Presionaremos “Next”

Una vez creadas las tablas que migraremos, procederemos a definir la manera en que el contenido será transferido a mysql. Podemos, como en el caso del metadata hacerlo al vuelo u online, o generar el script de migración para su análisis y revisión. En este caso hemos elegido OnLine. Presionamos Next

Hecho lo anterior, el programa comenzará el proceso de transferencia de datos desde Iseries Db2 hasta Mysql. De ser satisfactoria la transferencia, el programa nos lo indicará con un mensaje de éxito.
Y ahora prácticamente hemos terminado con el proceso de migración desde Db2 Iseries a Mysql. El sistema en la pantalla que le sigue a la anterior nos mostrará un resumen del proceso de migración donde además de conocer el número y tipo de objetos migrados, también podremos ver el resultado de cualquier error ocurrido durante el proceso. Aquí la pantalla de resumen y la vista de la tabla migrada a Mysql:


Como pueden ver, migrar información a Mysql desde DB2, Oracle, Access, Ms Sql o cualquier motor que soporte conectividad JDBC es muy sencillo.
Que necesitaremos?
Bueno, antes de iniciar con el proceso será necesario que tengas instalado en tu equipo lo siguiente:
- Mysql Gui Tools. Esto lo puedes descargar desde la página de mysql en http://www.mysql.com/
- Mysql Migration Toolkit. Este programa está incluido en las Gui Tools y lo podrás encontrar en el menú Inicio / Programas / Mysql
- IBM Iseries Access for Windows. Esto lo puedes descargar de la página de IBM
- También tendrás que tener instalado el JDK de java pues la comunicación será a través de JBDC
Lo primero que tendremos que hacer es copiar los .jar de IBM que nos permitirán comunicarnos con Iseries. Para ello, dependiendo de tu sistema operativo, iremos a la carpeta de instalación del client access que en mi caso es: C:\Program Files\IBM\Client Access Luego buscaremos la ruta jt400 y entraremos a lib. La ruta de acceso completa es: C:\Program Files\IBM\Client Access\jt400\lib. Una vez que hemos llegado a este directorio vamos a seleccionar los siguientes archivos de extensión Jar:
- jt400.jar
- jt400Servlet.jar
- jui400.jar
- uitools.jar
- util400.jar
- x4j400.jar
Ahora. ejecutaremos el programa “Mysql Migration ToolKit” que está en Inicio / Programas / Mysql la pantalla inicial que veremos es la siguiente:
Esta pantalla es muy importante pues nos permite saber si el programa cuenta con los requerimientos mínimos para ejecutarse. Como podemos observar en la imagen a la izquierda, tanto el Java Loader como el entorno de ejecución deben encontrarse inicializados.
Hecho esto presionamos el botón “Next” para continuar a la pantalla “configuration type”
Aquí nos aparecerán dos opciones. Para el caso que nos ocupa seleccionaremos “Direct Migration”
Después presionaremos “Next” para continuar con el proceso. El programa nos mostrará la pantalla “Source Database”. Es en esta pantalla donde estableceremos la configuración del origen de datos.
Al dar click en Database System, veremos que el programa soporta la migración por default de orígenes tan diversos como SqlServer, Oracle, Sybase, Etc. Para casos como el de DB2 que no está contemplado por defecto, tendremos que seleccionar “Generic Jdbc”. Seleccionado esto nos aparecerá en la parte inferior de la ventana , el cuadro de configuración de la conexión.
La información que deberemos capturar es la siguiente:
- Class Name: Es el nombre de la clase java a usar para conectarnos a Iseries. El valor a capturar es: com.ibm.as400.access.AS400JDBCDriver
- Connection String: La cadena de conexión que se compone de jdbc:<clase>://<dsn o ip del servidor iseries>>/<instancia>;libraries:<Base de datos o schema>;socket timeout=3000000;thread used=false Quedando en mi caso de la siguiente manera: jdbc:as400://DNSNOMBSERVIDOR/NOMBLIB;libraries=MIDATABASE;socket timeout=3000000;thread used=false
- Username: Nombre de usuario
- Password: Password de acceso.
- Class Name: com.ibm.as400.access.AS400JDBCDriver
- Connection String: jdbc: as400://192.168.200.5/SEGURI;libraries=SEGURI;socket timeout=3000000;thread used=false
- User Name: Usuario
- Password: Password
Ya que la base de datos destino es el propio mysql, la configuración nos va a resultar familiar pues solo deberemos indicar ip del servidor, nombre de usuario y contraseña. Presionamos ”Next” para continuar a la siguiente pantalla, donde, si hemos configurado correctamente nuestras conexiones nos mostrará la siguiente información.
Hasta este punto solo hemos configurado la conexión entre mysql y Db2 por lo que al presionar el botón “Next” comenzaremos a configurar tanto el origen como el destino de los datos a migrar. La pantalla que nos aparece “Source schemadata selection” nos muestra los schemas del servidor de base de datos y nos pide seleccionemos del cuál queremos migrar datos.
Seleccionamos el schema del que deseamos migrar información y presionamos siguiente.
En esta pantalla el programa nos muestra el total de objetos que ha encontrado en el schema seleccionado.
Si el objetivo es migrar el total de tablas encontradas da click en “Next” para continuar con el siguiente paso. De otra manera tendrás que dar click en “Detailed selection” para elegir la o tablas a migrar.
Como podemos ver en la pantalla previa, se nos muestra el contenido del schema seleccionado donde podemos elegir la tabla o tablas a migrar. Presionamos “Next” para continuar.
En esta nueva pantalla tendremos que establecer las opciones de migración tanto para el origen como para el destino. Si no tienes mucha experiencia con los Engines de mysql así como el collation te recomiendo que intentes la migración con los valores por default.
Presionamos “Next” para continuar. y el programa comenzará a generar el bloque de sentencias DDL para la migración de datos. Una vez que haya finalizado presionamos ”Next”
Si todo es correcto, nos dará un mensaje indicándonos que el mapeo se ha realizado correctamente. Presionamos siguiente.
En esta parte del asistente podemos elegir entre crear los objetos al vuelo o, si queremos verificar la definición de nuestros campos generar el script con todo el bloque de sentencias DDL para la migración. Seleccionamos la creación OnLine y presionamos “Next”
En este momento se comenzarán a crear los objetos seleccionados para su migración. Al finalizar el proceso podremos ver el resultado. Presionamos “Next” al ver que todo va bien en este punto.
El programa nos confirma que todo va bien. Aquí es importante mencionar que de ocurrir algún error en la creación de los objetos, se nos mostrará los problemas al seleccionar el filtro: “Show create problems”. Presionaremos “Next”
Una vez creadas las tablas que migraremos, procederemos a definir la manera en que el contenido será transferido a mysql. Podemos, como en el caso del metadata hacerlo al vuelo u online, o generar el script de migración para su análisis y revisión. En este caso hemos elegido OnLine. Presionamos Next
Hecho lo anterior, el programa comenzará el proceso de transferencia de datos desde Iseries Db2 hasta Mysql. De ser satisfactoria la transferencia, el programa nos lo indicará con un mensaje de éxito.
Y ahora prácticamente hemos terminado con el proceso de migración desde Db2 Iseries a Mysql. El sistema en la pantalla que le sigue a la anterior nos mostrará un resumen del proceso de migración donde además de conocer el número y tipo de objetos migrados, también podremos ver el resultado de cualquier error ocurrido durante el proceso. Aquí la pantalla de resumen y la vista de la tabla migrada a Mysql:
Como pueden ver, migrar información a Mysql desde DB2, Oracle, Access, Ms Sql o cualquier motor que soporte conectividad JDBC es muy sencillo.
Tomado de: Articulo original
jueves, abril 18, 2013
CENTOS comando Copy.
Algunos trucos:
Copiar un archivos sin confirmar la sobre escritura usando comando yes.
yes | cp -Rf * /home/macropro/E_fe01
(esta es una solucion "desesperada" pero funciona!) En centos pide confirmacion porque por default hay un alias:
cp='cp -i'
Para quitarlo:
unalias cp
unalias elimina el alias de cp que pide confirmación Otra opcion para no eliminar el alias es encerrar entre apóstrofes, esto usa el
comando tal cual sin alias, con la ventaja que el alias se mantiene para uso posteriores Ej:
'cp' archivo /haciadonde/archivo
'cp' -rf /RutaOrigen/* /RutaDestino/
martes, abril 16, 2013
MySQL Error 1153 - Obtenido un paquete mayor que 'max_allowed_packet bytes'
Se debe cambiar en
my.ini (En Windows, c:\Program Files\MySQL\MySQL Server / En Linux etc/my.cnf) dentro de la seccion:[mysqld]
max_allowed_packet = 10MB
O tambien ejecutar de la siguiente en lineas de Comandos:
mysql --max_allowed_packet=100M -u root -p database < dump.sql
Can't contact the database server: Can't connect to MySQL server on (13)
Al momento de instalar MEDIAWIKI 1.20.4, en Centos, pero la particularidad es que tenemos en otro servidor exclusivamente para servidores de base de datos, debido a ello me reporta el error:
Tomado de: Articulo ORIGINAL
Can’t connect to MySQL server on… (13)
Revisando todas las alternativas:- He hecho todas las configuraciones MySQL en PHP, pero mi solicitud estaba lanzando un "no se puede conectar al servidor MySQL en ... (13)
- Tuve la oportunidad de acceder a MySQL remotamente desde el servidor nuevo usando la línea de comandos, y fue capaz de telnet al puerto 3306, así que sabía que yo era capaz de conectarse.
- Por alguna razón, mi aplicación PHP era incapaz de hacerlo. Finalmente, descubrí que debido a que el nuevo servidor se estaba ejecutando CentOS que necesitaba para desactivar SELinux.
- Si está experimentando este problema, entonces éste es una posible solución. Modifique el archivo /etc/sysconfig/selinux, la siguiente linea:
SELINUX=enforcing
a
SELINUX=disabled
A continuación, tendrá que reiniciar el servidor. Una vez que hice este cambio mi aplicación PHP fue capaz de conectarse a la base de datos sin ningún problema.
Tomado de: Articulo ORIGINAL
jueves, febrero 28, 2013
PHP 5.4 en CentOS/RHEL 6.3 via Yum
Tomado de: PHP 5.4 on CentOS/RHEL 6.3 via Yum
PHP 5.4.12 ha sido liberado en n PHP.net el 20/12/2012 y esta disponible para CentOS 6 y RHEL 6 en Webtatic via Yum.
Update 2012-08-26 – APC is stable enough now and so the extension has been added
Update 2012-07-22 – memcache and xdebug extensions have been added
Update 2012-04-29 – mcrypt, tidy, mssql, interbase have been added back in to the repository.
PHP 5.4.0 adds new features such as:
Adicione el repositorio Webtatic EL6 de yum:
Ahora instalamos php:
Si usted desea actualizar a esta versión de PHP se recomienda que primero compruebe que su sistema será compatible con la actualización, por ejemplo, asegurándose de que cualquier software CPanel-como puede funcionar después de la actualización.
Si no hay ninguna complicación en la instalación, se recomienda quitar la instalación de PHP existente antes de instalar la versión Webtatic como se describió anteriormente.
Update 2012-08-26 – APC is stable enough now and so the extension has been added
Update 2012-07-22 – memcache and xdebug extensions have been added
Update 2012-04-29 – mcrypt, tidy, mssql, interbase have been added back in to the repository.
PHP 5.4.0 adds new features such as:
- Traits
- Built-in web server
- Array short notation
- Array return value de-referencing
- Finally killing off magic-quotes and safe-mode
Adicione el repositorio Webtatic EL6 de yum:
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
yum install php54w
Si no hay ninguna complicación en la instalación, se recomienda quitar la instalación de PHP existente antes de instalar la versión Webtatic como se describió anteriormente.
Packages
| Package | Provides |
|---|---|
| php54w | mod_php |
| php54w-bcmath | |
| php54w-cli | php-cgi, php-pcntl, php-readline |
| php54w-common | php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib |
| php54w-dba | |
| php54w-devel | |
| php54w-embedded | php-embedded-devel |
| php54w-enchant | |
| php54w-fpm | |
| php54w-gd | |
| php54w-imap | |
| php54w-interbase | php_database, php-firebird |
| php54w-intl | |
| php54w-ldap | |
| php54w-mbstring | |
| php54w-mcrypt | |
| php54w-mssql | |
| php54w-mysql | php-mysqli, php_database |
| php54w-odbc | php-pdo_odbc, php_database |
| php54w-pdo | |
| php54w-pecl-apc | |
| php54w-pecl-memcache | |
| php54w-pecl-xdebug | |
| php54w-pgsql | php-pdo_pgsql, php_database |
| php54w-process | php-posix, php-sysvmsg, php-sysvsem, php-sysvshm |
| php54w-pspell | |
| php54w-recode | |
| php54w-snmp | |
| php54w-soap | |
| php54w-tidy | |
| php54w-xml | php-dom, php-domxml, php-wddx, php-xsl |
| php54w-xmlrpc | |
| php54w-zts |
Opcode Caches
Un paquete precompilado PHP APC está disponible paraa memoria caché, que se recomienda por razones de rendimiento. Se puede instalar a través de:yum install php54w-pecl-apc
Suscribirse a:
Entradas (Atom)