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 .zip
arquivo 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 mysql
banco de dados, apenas information_schema
. Então eu executei isso:
mysql_upgrade.exe --upgrade-system-tables
E mysql
bancos de dados foram criados. Mas junto com isso aconteceu algo com o usuário root, porque eu não conseguia mysql
mais 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 mysql
sem 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.exe
sob 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-tables
opçã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 --initialize
comando 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.err
arquivo. 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 -p
com senha temporária.Mude a senha temporária:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';