lunes, 16 de julio de 2012

PHP-MySQL en Fedora

PHP Fatal error:  Call to undefined function mysql_connect() in /var/www/html/

Esa funcion es usada para conectarse a una base de datos MySQL. En fedora la extension de la libreria mysql.so no viene con PHP o con MySQL, esta debe ser instalado por separado:
yum install php-mysql

Luego se reinicia el apache:
httpd -k restart

Verificar en el log de error:

tail -f /var/log/httpd/error_log

viernes, 6 de julio de 2012

JDBC y MySQL en slackware 13.1

Es un largo tiempo sin publicar, me di de lleno a actividades que buscaban mejorar la universidad. Ahora retomo parcialmente las actividades que me apasionan.
Para permitir conexiones entrantes a una base de datos MySQL desde afuera (cualquier host diferente a localhost) se debe tener en cuenta lo siguiente:
1. Editar el archivo /etc/my.cnf y comentar la linea skip-networking
2. Editar el archivo /etc/rc.d/rc.mysqld y comentar la linea SKIP="--skip-networking"

Ambos parametros refieren a lo mismo, a la capacidad de evitar conexiones externas a la base de datos. Ambos deben ser comentados.
Finalmente un codigo de prueba, usando JDBC para verificar que ya tenemos conexion a la base de datos:

Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/db";
            con = DriverManager.getConnection(url, "edson", "edson");
            st = con.createStatement();
            rs = st.executeQuery("SELECT * FROM packets");           
            while(rs.next()){
                    System.out.println(rs.getInt(1));
            }
        catch (SQLException e) {
            e.printStackTrace();
        }

Resumidamente, se registra el driver, se crea la conexion y se ejecuta un query, cuyo resultado es impreso en la salida estandar.