jueves, 25 de octubre de 2018

Acceder a mysql con root y también cambiar contraseña.

Si por alguna razón deseas acceder como el usuario de root a las bases de datos debemos cambiar algunos datos de la tabla mysql.

Aplicado en mysql 5

1. Entramos a mysql 

$ sudo mysql -u root mysql

2. Revisamos la tabla user

mysql> select * from user;

3. Cambiamos el valor del plugin de auth_socket a mysql_native_password del usuario root

mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';

4. Aplicamos los cambios

mysql> flush privileges;

5. Salimos de la conexión actual 

mysql>quit

6. Ahora ingresamos normalmente

$mysql -u root mysql
enter password:

7. Si todo sale correcto habrás ingresado 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version:  ******************** (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>



Adicional: cambiar contraseña

8. Dentro de la conexión  lanzamos la siguiente consulta

mysql> UPDATE user SET authentication_string=PASSWORD("nuevaclave") WHERE User='root';

9. Aplicamos los cambios

mysql> flush privileges;

10. Salimos de la conexión actual 

mysql>quit

11. Reiniciamos el servicio

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start 

12. Probamos con el nuevo password

Todo debe salir perfecto.



miércoles, 24 de octubre de 2018

Habilitar Mysql con php7-Apache2 en Ubuntu

Instale ubuntu 16 en un equipo para realizar unas pruebas con Apache2 y php7.2

Cuando quise utilizar mysql mostraba que no estaba podía realizar la conexión.

Entonces hice lo siguiente:


Primero, edite el archivo

$ sudo nano /etc/php/7.2/apache2/php.ini

descomente la línea (elimine ;):

extension=php_mysqli.so

Guarde sus cambios (CTRL+C)

Después necesitamos instalar la librería php-mysql

$ sudo apt install php-mysql

Se instalarán los siguientes paquetes NUEVOS:
  php-mysql php7.2-mysql

Para versiones de php7 se deben habilitar las extensiones, entonces ejecutamos:

$ sudo phpenmod mysqli

Reiniciamos el servicio de apache

$ sudo ./etc/init.d/apache2 stop
$ sudo ./etc/init.d/apache2 start

Si tenemos instalado phpmyadmin entonces podemos revisar la conexión

¡¡Funciona!!


jueves, 18 de octubre de 2018

Habilitar OPcache en PHP 5.5 o superior

Opcache es una tecnología muy usada actualmente para mejorar el rendimiento de un sitio web

Habilitar la librería es muy sencillo.

Primero hay que editar nuestro archivo php.ini que estamos usando con Apache

Agregamos la siguiente linea en la parte donde cargamos las extensiones:

#en mi caso tengo ubicado el php en la unidad D

zend_extension=D:\php\ext\php_opcache.dll


Después configuramos los siguientes valores, se recomienda revisar las especificaciones que usted necesite, estas digamos son las comunes:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1



Ahora guardamos nuestro archivo php.ini

Si estamos en windows, copiamos el archivo php.ini a C:\windows\

Detenemos el servicio de Apache
y lo volvemos a iniciar.






Si todo esta correcto, nuestra extensión ha sido agregada.

Podemos usar un script y probar con php_info()



Saludos.

jueves, 11 de octubre de 2018

Mysql apache 2_4 php 5.6 Moodle 3.1 Error: database driver problem detected

Error: database driver problem detected

The site administrator should verify server configuration

PHP has not been properly configured with the MySQLi extension for it to communicate with MySQL. Please check your php.ini file or recompile PHP.


El anterior error ocurrió cuando cambie de php 7.0 a php 5.6

Anteriormente tenia el php 5, pero debido a requerimientos instale php 7.0 (necesitaba instalar drupal 8)

Sin embargo encontré un error en moodle 3.1 cuando quería agregar un nuevo curso 

$this no context 

La solución era migrar a moodle 3.2 pero como tengo personalizado algunas cosas y el servidor de producción del cliente esta con las características de 3.1, entonce la solución era volver a usar php 5.6. Al cargar la anterior configuración marcaba que no encontraba el driver de mysqli,
lo raro es que las demás extensiones si las cargaba menos la de mysqli.



Solución

Pues intentando varias cosas la solución fue poner de manera absoluta la ruta de la carpeta de extensiones.

Así que en el archivo php.ini modifique

 extension_dir = "d:\php\ext"

copie el archivo php.ini a c:\windows\

y reinicie el servicio de Apache 2


Ahora bien, por obvias razones, resolveré lo que tengo y regresaré a php 7.0 (actualmente ya solo trabajo con moodle 3.3 y drupal 8) pero esta solución permitirá que si lo necesitan puedan resolver su problema.

Saludos.