Skip to content

Latest commit

 

History

History
364 lines (257 loc) · 6.98 KB

File metadata and controls

364 lines (257 loc) · 6.98 KB

Guia de Configuração MySQL

Este guia irá ajudá-lo a configurar o MySQL para a API do Blog.

Pré-requisitos

Você precisa ter o MySQL instalado. Se ainda não tem:

Windows

Linux

sudo apt update
sudo apt install mysql-server

macOS

brew install mysql
brew services start mysql

Passo 1: Verificar se o MySQL está rodando

Windows (XAMPP/WAMP)

  • Abra o painel de controle do XAMPP/WAMP
  • Inicie o serviço MySQL

Windows (MySQL Installer)

# Verificar se está rodando
net start | find "MySQL"

# Se não estiver, inicie:
net start MySQL80

Linux/macOS

# Verificar status
sudo systemctl status mysql

# Ou
mysql.server status

# Iniciar se necessário
sudo systemctl start mysql
# Ou
mysql.server start

Passo 2: Configurar senha do root (se necessário)

Se esta é a primeira vez usando MySQL ou você não sabe a senha:

# Conectar ao MySQL
mysql -u root

# Dentro do MySQL, defina uma senha (opcional)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'sua_senha';
FLUSH PRIVILEGES;
EXIT;

Passo 3: Criar o banco de dados

Opção 1: Usando o arquivo SQL fornecido

# Se não tem senha
mysql -u root < database/setup_mysql.sql

# Se tem senha
mysql -u root -p < database/setup_mysql.sql

Opção 2: Manualmente via linha de comando

# Conectar ao MySQL
mysql -u root -p

# Dentro do MySQL, execute:
CREATE DATABASE IF NOT EXISTS blog_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
EXIT;

Opção 3: Usando phpMyAdmin (XAMPP/WAMP)

  1. Acesse http://localhost/phpmyadmin
  2. Clique em "New" (Novo)
  3. Nome do banco: blog_api
  4. Collation: utf8mb4_unicode_ci
  5. Clique em "Create" (Criar)

Passo 4: Configurar o arquivo .env

O arquivo .env já foi configurado com as seguintes informações:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog_api
DB_USERNAME=root
DB_PASSWORD=

IMPORTANTE: Se você definiu uma senha para o usuário root, atualize a linha DB_PASSWORD:

DB_PASSWORD=sua_senha_aqui

Passo 5: Testar a conexão

cd blog-api

# Limpar cache de configuração
php artisan config:clear

# Testar conexão com o banco
php artisan migrate:status

Se a conexão estiver OK, você verá uma lista de migrations (mesmo que ainda não executadas).

Passo 6: Executar Migrations e Seeders

# Executar migrations (cria as tabelas)
php artisan migrate

# Ou executar migrations e seeders juntos
php artisan migrate:fresh --seed

Você deverá ver algo como:

INFO  Running migrations.

0001_01_01_000000_create_users_table .................. DONE
0001_01_01_000001_create_cache_table .................. DONE
0001_01_01_000002_create_jobs_table ................... DONE
2025_12_09_222509_create_posts_table .................. DONE
2025_12_09_222511_create_comments_table ............... DONE

INFO  Seeding database.

Database seeded successfully!
Test user credentials:
Email: test@example.com
Password: password

Passo 7: Verificar as tabelas criadas

Via MySQL CLI

mysql -u root -p blog_api

# Dentro do MySQL
SHOW TABLES;

# Ver estrutura de uma tabela
DESCRIBE users;
DESCRIBE posts;
DESCRIBE comments;

# Ver dados
SELECT * FROM users;
SELECT * FROM posts LIMIT 5;
SELECT * FROM comments LIMIT 5;

EXIT;

Via phpMyAdmin

  1. Acesse http://localhost/phpmyadmin
  2. Clique no banco blog_api no menu lateral
  3. Você verá todas as tabelas criadas

Passo 8: Iniciar o servidor

php artisan serve

A API estará disponível em: http://localhost:8000

Troubleshooting (Resolução de Problemas)

Erro: "SQLSTATE[HY000] [2002] No connection could be made"

Problema: MySQL não está rodando

Solução:

# Windows (XAMPP)
- Inicie o MySQL pelo painel do XAMPP

# Windows (MySQL Service)
net start MySQL80

# Linux/macOS
sudo systemctl start mysql

Erro: "SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost'"

Problema: Senha incorreta

Solução:

  • Verifique a senha no arquivo .env
  • Se não tem senha, deixe DB_PASSWORD= vazio
  • Se tem senha, adicione: DB_PASSWORD=sua_senha

Erro: "SQLSTATE[HY000] [1049] Unknown database 'blog_api'"

Problema: Banco de dados não foi criado

Solução:

# Criar o banco manualmente
mysql -u root -p
CREATE DATABASE blog_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

Erro: "Extension php_pdo_mysql is missing"

Problema: Extensão MySQL do PHP não está habilitada

Solução:

Windows:

  1. Abra o arquivo php.ini
  2. Procure por ;extension=pdo_mysql
  3. Remova o ; para descomentar: extension=pdo_mysql
  4. Salve e reinicie o servidor

Linux:

sudo apt install php-mysql
sudo systemctl restart apache2

Limpar tudo e recomeçar

Se algo deu errado e você quer recomeçar:

# Dropar e recriar o banco
mysql -u root -p
DROP DATABASE blog_api;
CREATE DATABASE blog_api CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

# Executar migrations e seeders novamente
php artisan migrate:fresh --seed

Comandos Úteis

# Limpar cache de configuração
php artisan config:clear

# Ver status das migrations
php artisan migrate:status

# Executar apenas migrations (sem seeders)
php artisan migrate

# Executar apenas seeders
php artisan db:seed

# Dropar todas as tabelas e recriar com seeders
php artisan migrate:fresh --seed

# Rollback da última migration
php artisan migrate:rollback

# Ver todas as rotas da API
php artisan route:list

Configurações Avançadas

Criar um usuário específico para a aplicação (Recomendado para produção)

-- Conectar como root
mysql -u root -p

-- Criar usuário
CREATE USER 'blog_user'@'localhost' IDENTIFIED BY 'senha_segura';

-- Conceder privilégios
GRANT ALL PRIVILEGES ON blog_api.* TO 'blog_user'@'localhost';
FLUSH PRIVILEGES;

EXIT;

Depois atualize o .env:

DB_USERNAME=blog_user
DB_PASSWORD=senha_segura

Configurar porta diferente

Se seu MySQL está em uma porta diferente da 3306:

DB_PORT=3307

Usar host remoto

Para conectar a um MySQL remoto:

DB_HOST=192.168.1.100
DB_PORT=3306
DB_DATABASE=blog_api
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha

Próximos Passos

Depois de configurar o MySQL com sucesso:

  1. Teste a API: Consulte API_EXAMPLES.md
  2. Use o arquivo api-tests.http para testar no VS Code
  3. Leia a documentação completa: API_DOCUMENTATION.md

Backup do Banco de Dados

Para fazer backup:

# Exportar banco de dados
mysqldump -u root -p blog_api > backup_blog_api.sql

# Restaurar de um backup
mysql -u root -p blog_api < backup_blog_api.sql

Suporte

Se você encontrar problemas não listados aqui, verifique:

  • Logs do Laravel: storage/logs/laravel.log
  • Logs do MySQL: Geralmente em /var/log/mysql/error.log (Linux)