Quería tener en mi PC (con Windows 8.1 x64) solo el servidor MySQL, sin Workbench o algo así. Así que descargué el .zip
archivo de dev.mysql.com/downloads . Es una descarga para Win64 en x86_64 versión 5.7.9 (MySQL Community Server (GPL)).
Lo instalé como un servicio de Windows, pero no había una mysql
base de datos, solo information_schema
. Entonces ejecuté esto:
mysql_upgrade.exe --upgrade-system-tables
Y mysql
se crearon bases de datos. Pero junto con esto sucedió algo con el usuario root, porque ya no podía acceder mysql
.
Así que decidí restablecer esta contraseña que apareció de repente (porque no la tenía antes). Fundé la siguiente solución en el manual oficial, comencé el servidor de esta manera:
mysqld.exe --skip-grant-tables --console
Luego abrí mysql
sin contraseña:
mysql.exe –u root
Y luego trató de restablecer la contraseña de root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Pero recibí este error:
ERROR 1131 (42000): está utilizando MySQL como usuario anónimo y los usuarios anónimos no pueden cambiar las contraseñas ".
¿Que es esto? ¿Cómo soy anónimo? Todos los comandos se ejecutaron cmd.exe
bajo el Administrador.
¿Qué debo hacer para restablecer la contraseña de root en esta situación?
Actualización 1: Traté de verificar el usuario actual:
SELECT USER(), CURRENT_USER();
Eso da:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
Eso es raro, porque lo empecé así mysql.exe -u root
.
Luego verifiqué la tabla de usuarios:
SELECT user FROM mysql.user;
Eso da:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
Eso es aún más raro. Además no hay campo de contraseña:
SELECT user, password FROM mysql.user;
ERROR 1054 (42S22): columna desconocida 'contraseña' en 'lista de campos'
Entonces no puedo cambiar su contraseña.
Y no puedo crear un nuevo usuario:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
ERROR 1290 (HY000): el servidor MySQL se está ejecutando con la
--skip-grant-tables
opción, por lo que no puede ejecutar esta declaración
Ahora estoy perdido
Actualización 2: supongo que hice todo mal desde el principio. Aparentemente, me perdí una mysqld.exe --initialize
orden de alguna manera.
Entonces, así es como instalé MySQL desde .zip-archive, gracias a @RolandoMySQLDBA :
- Descomprima el archivo, prepárese
my.ini
. - Ejecute
mysqld.exe --initialize
, obtenga una contraseña temporal del.err
archivo. Instale MySQL como un servicio y ejecútelo
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"
Conéctese
mysql -u root -p
con una contraseña temporal.Cambiar la contraseña temporal:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';
password
columna fue renombradaauthentication_string
.