Si tienes un Mac y has tenido la mala suerte de instalar un paquete de MySQL y luego no poder crear tablas ni acceder con permisos de root sobre la base de datos, aquí te dejo como hacer un reset al password de root en tu osx.
Lo primero que tendremos en cuenta es que no es un linux, por tanto si vienes de este otro sistema operativo, vas a encontrar algunas diferencias, entre ellas las rutas de instalación por defecto de MySQL. Aunque vamos a centrarnos en la versión 5 o superior de mysql, también voy a dejar la línea que difiere para versiones inferiores con lo que deberías no tener problema en cambiar la contraseña de mysql en cualquier versión.
Cambiar o resetear password de root en MySQL para Mac
Son unos sencillos pasos que vamos a llevar a cabo desde consola de comandos y que posiblemente nos obliguen a utilizar dos consolas.
- Parar mysql
El primer comando a ejecutar es necesario ya que vamos a cargar MySQL sin permisos de usuario, para así poder cambiar las tablas con cualquier usuario. Como es una medida temporal no te preocupes por la seguridad. Ejecutamos:sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
- Arrancar mysql sin permisos de usuarios
Ahora arrancaremos mysql pero en este caso vamos a omitir la tabla que indica los permisos que tiene cada usuario, con esto podremos ser capaces de modificar las tablas de mysql como si fuesemos root. Ejecutamos:sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Si estamos usando una versión inferior a mysql5 deberemos usar esta otra línea:
/usr/local/mysql/bin/safe_mysqld --skip-grant-tables
- Entramos en mysql
Ejecutaremos el siguiente comando para entrar en mysql en modo consola:sudo /usr/local/mysql/bin/mysql
- Seleccionamos la base de datos
Como es necesario, vamos a seleccionar la base de datos donde está la tabla que queremos modificar con la siguiente línea:USE mysql;
- Cambiaremos la contraseña de root
Ahora una vez dentro de la base de datos mysql vamos a editar la contraseña de root en la tabla user con el siguiente comando:UPDATE user SET Password=PASSWORD('123456') WHERE Host='localhost' AND User='root';
Cambiaremos 123456 por la contraseña que queramos, lo ejecutaremos y después saldremos de mysql con
quit;
- Por último solo nos queda reiniciar mysql
Ejecutaremos el siguiente comando para reinciar mysql y debería dejarnos acceder como root y la contraseña que hayamos elegidosudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
Son unos pasos bastante simples pero que si no conoces pueden llevarte a más de un quebradero de cabeza. De esta forma podrás modificar la contraseña root y poner la que prefieras tengas o no una puesta anteriormente y aunque la hayas olvidado.
Ver comentarios (5)
Hola... Luego del comando:
MacBook-de-Miguel:bin Miker$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Password:****
Me sale:
Logging to '/usr/local/mysql/data/MacBook-de-Miguel.local.err'.
2017-05-20T22:31:34.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
y en http://127.0.0.1/phpmyadmin/index.php
Me sale el error:
El inicio de sesión sin contraseña está prohibido por la configuración (ver AllowNoPassword)
Que e sugieres hacer?
Gracias
Buenas, prueba a hacerlo de la siguiente manera, ejecuta esto en una terminal:
sudo mysqld_safe --skip-grant-tables
Abre otro terminal sin tocar nada en este y ejecuta:
mysql -u root
Debería conectarse sin pedir contraseña. En la consola mysql:
use mysql;
UPDATE user SET Password=PASSWORD('123456') WHERE User='root';
flush privileges;
de ahí ya puedes salir de la consola mysql, parar el proceso en la otra ventana y reiniciar el servicio mysql.
Dime si te ha funcionado así
Antes de leer tu sugerencia lo solucioné instalando XAMPP, deteniendo mysql (el que viene por defecto) y así pude conectarme a Mysql y crear los usuarios. Ya instale wordpress pero no puedo instalar prestashop por problemas con los permisos y no se donde dar los permisos a la carpeta de prestashop.
Quizá haciéndolo en el terminal?
Luego de copiar el paquete prestashop de la versión 1,6 en el localhost:
http://localhost/tienda/prestashop
y hacer click en prestashop, no instala... me sale:
"Esta página no funciona
La página localhost no puede procesar esta solicitud ahora.
HTTP ERROR 500"
con la version 1.7 me sale:
"¡Objeto no localizado!
No se ha localizado la URL solicitada en este servidor. Si usted ha introducido la URL manualmente, por favor revise su ortografía e inténtelo de nuevo.
Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.
Error 404
localhost
Apache/2.4.25 (Unix) OpenSSL/1.0.2j PHP/5.6.30 mod_perl/2.0.8-dev Perl/v5.16.3"
Alguna idea?
A ver, lo más probable es que sea por tema de permisos que es lo que comentas, o por que te falte algún módulo como el mod_rewrite en apache.
Para lo de los permisos tendrás que tirar de terminal (o ftp pero como estás en local). Como es un entorno de pruebas o desarrollo, puedes dar todos los permisos de momento a los archivos:
chmod -R 777 /carpeta/hasta/prestashop/root
Piensa que el 777 son permisos de lectura/escritura para cualquiera, así que ojo en producción. Una vez dentro de prestashop y con los permisos de archivos bien deberías poder ejecutar la reparación en la sección de mantenimiento.
Por otro lado puede que hayas creado los archivos con tu usuario y no tenga permisos apache sobre ellos, para eso vete a la carpeta de prestashop, haz un ls -l y dime qué usuario.grupo marcan los archivos y la carpeta de prestashop también.
Me ha pasado con la version mysql community 5.6.14 y con tus indicaciones he podido solucionarlo!
Muchísimas gracias por este tuto!