Este guia irá ajudá-lo a configurar o MySQL para a API do Blog.
Você precisa ter o MySQL instalado. Se ainda não tem:
- Baixe o MySQL Installer: https://dev.mysql.com/downloads/installer/
- Ou use XAMPP/WAMP que já inclui MySQL
sudo apt update
sudo apt install mysql-serverbrew install mysql
brew services start mysql- Abra o painel de controle do XAMPP/WAMP
- Inicie o serviço MySQL
# Verificar se está rodando
net start | find "MySQL"
# Se não estiver, inicie:
net start MySQL80# Verificar status
sudo systemctl status mysql
# Ou
mysql.server status
# Iniciar se necessário
sudo systemctl start mysql
# Ou
mysql.server startSe 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;# Se não tem senha
mysql -u root < database/setup_mysql.sql
# Se tem senha
mysql -u root -p < database/setup_mysql.sql# 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;- Acesse http://localhost/phpmyadmin
- Clique em "New" (Novo)
- Nome do banco:
blog_api - Collation:
utf8mb4_unicode_ci - Clique em "Create" (Criar)
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_aquicd blog-api
# Limpar cache de configuração
php artisan config:clear
# Testar conexão com o banco
php artisan migrate:statusSe a conexão estiver OK, você verá uma lista de migrations (mesmo que ainda não executadas).
# Executar migrations (cria as tabelas)
php artisan migrate
# Ou executar migrations e seeders juntos
php artisan migrate:fresh --seedVocê 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
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;- Acesse http://localhost/phpmyadmin
- Clique no banco
blog_apino menu lateral - Você verá todas as tabelas criadas
php artisan serveA API estará disponível em: http://localhost:8000
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 mysqlProblema: 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
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;Problema: Extensão MySQL do PHP não está habilitada
Solução:
Windows:
- Abra o arquivo
php.ini - Procure por
;extension=pdo_mysql - Remova o
;para descomentar:extension=pdo_mysql - Salve e reinicie o servidor
Linux:
sudo apt install php-mysql
sudo systemctl restart apache2Se 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# 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-- 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_seguraSe seu MySQL está em uma porta diferente da 3306:
DB_PORT=3307Para 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_senhaDepois de configurar o MySQL com sucesso:
- Teste a API: Consulte API_EXAMPLES.md
- Use o arquivo api-tests.http para testar no VS Code
- Leia a documentação completa: API_DOCUMENTATION.md
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.sqlSe 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)