Eu queria ter no meu PC (com Windows 8.1 x64) apenas o servidor MySQL, sem o Workbench ou algo assim. Então, eu baixei o .ziparquivo em dev.mysql.com/downloads . É um download para o Win64 no x86_64 versão 5.7.9 (MySQL Community Server (GPL)).
Instalei-o como um serviço do Windows, mas não havia mysqlbanco de dados, apenas information_schema. Então eu executei isso:
mysql_upgrade.exe --upgrade-system-tables
E mysqlbancos de dados foram criados. Mas junto com isso aconteceu algo com o usuário root, porque eu não conseguia mysqlmais acessar .
Então, eu decidi redefinir essa senha que apareceu de repente (porque eu não a tinha antes disso). Eu fundei a seguinte solução no manual oficial, iniciei o servidor assim:
mysqld.exe --skip-grant-tables --console
Então eu abri mysqlsem senha:
mysql.exe –u root
E, em seguida, tentei redefinir a senha root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Mas eu recebi este erro:
ERRO 1131 (42000): Você está usando o MySQL como usuário anônimo e usuários anônimos não têm permissão para alterar senhas ".
O que é isso? Como sou anônimo? Todos os comandos foram executados cmd.exesob o administrador.
O que devo fazer para redefinir a senha root nesta situação?
Atualização 1: tentei verificar o usuário atual:
SELECT USER(), CURRENT_USER();
Isso dá:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
Isso é estranho, porque eu comecei assim mysql.exe -u root.
Então eu verifiquei a tabela de usuários:
SELECT user FROM mysql.user;
Isso dá:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
Isso é ainda mais estranho. Também não há campo de senha:
SELECT user, password FROM mysql.user;
ERRO 1054 (42S22): coluna desconhecida 'senha' na 'lista de campos'
Portanto, não posso alterar sua senha.
E não consigo criar um novo usuário:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
ERRO 1290 (HY000): O servidor MySQL está sendo executado com a
--skip-grant-tablesopção, portanto, não pode executar esta instrução
Agora estou perdido.
Atualização 2: Eu acho que fiz tudo errado desde o início. Aparentemente, eu perdi um mysqld.exe --initializecomando de alguma forma.
Então, é assim que eu instalei o MySQL a partir do arquivo .zip, graças a @RolandoMySQLDBA :
- Descompacte o arquivo, prepare
my.ini. - Execute
mysqld.exe --initialize, obtenha a senha temporária do.errarquivo. Instale o MySQL como um serviço e execute-o
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"Conecte-se a ele
mysql -u root -pcom senha temporária.Mude a senha temporária:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';