Este repositório contém um exemplo simples de um script PHP (index.php
) que se conecta a um banco de dados MySQL local para inserir dados em uma tabela (Jogos
). O projeto inclui o esquema do banco de dados e o script PHP adaptado para um ambiente local no Ubuntu com MySQL Server instalado diretamente.
Inicialmente, este setup estava configurado para um ambiente remoto na AWS, e os arquivos foram adaptados para funcionar em um ambiente de desenvolvimento local.
.
├── README.md # Arquivo com informações sobre o repositório.
├── Jogos.sql # Esquema da tabela Jogos
.
└── index.php # Script PHP para conexão e inserção.
Para rodar este projeto localmente, você precisa ter instalado:
-
Ubuntu 25.04 Plucky Puffin:
O setup foi baseado/testado nesta versão do Ubuntu. -
MySQL Server:
Um servidor MySQL rodando no seu Ubuntu local. Versão utilizada: 8.4.4 (Ubuntu) -
php8:
PHP instalado com a extensãomysqli
habilitada. Versão utilizada: 8.4.5 (cli). -
phpMyAdmin: 
Ferramenta de código aberto, escrita em PHP, que permite gerenciar e manipular bancos de dados MySQL e MariaDB através de uma interface web. Versão utilizada: 4:5.2.2-really5.2.2+20250121+dfsg-1 -
Apache HTTP Server Project:
Um servidor web (como Apache ou Nginx) configurado para processar arquivos PHP.
(Os comandos de instalação podem variar ligeiramente dependendo da sua versão exata do Ubuntu e das suas preferências de servidor web, mas os pacotes principais (
mysql-server
,php
,php-mysqli
,apache2
ounginx
) são geralmente instalados viasudo apt update && sudo apt install ...
)
Para configurar o ambiente local necessário, siga os passos abaixo para instalar o servidor web, o banco de dados e a ferramenta de administração.
O Apache2 é um dos servidores web mais populares.
-
Atualize o índice de pacotes do sistema:
sudo apt update
-
Instale o pacote Apache2:
sudo apt install apache2 -y
-
Verifique se o serviço Apache2 está rodando:
sudo systemctl status apache2
Você deverá ver "Active: active (running)".
O MySQL Server é o sistema de gerenciamento de banco de dados.
-
Atualize o índice de pacotes do sistema (se não fez recentemente):
sudo apt update
-
Instale o pacote mysql-server:
sudo apt install mysql-server -y
-
Verifique a versão instalada:
mysql --version
-
Verifique se o serviço MySQL está rodando:
sudo systemctl status mysql
Você deverá ver "Active: active (running)".
-
(Opcional, mas recomendado) Execute o script de segurança pós-instalação:
sudo mysql_secure_installation
Este script ajudará a remover configurações padrão inseguras.
phpMyAdmin é uma interface web para gerenciar bancos de dados MySQL.
-
Atualize o índice de pacotes do sistema (se não fez recentemente):
sudo apt update
-
Instale o pacote phpmyadmin, juntamente com extensões PHP comuns necessárias:
sudo apt install phpmyadmin php php-mysql php-mbstring php-json php-xml php-curl php-zip php-common php-gd -y
-
Durante a instalação do phpMyAdmin, você será solicitado a:
- Escolher o servidor web a ser reconfigurado automaticamente (selecione
apache2
pressionandobarra de espaço
e depoisEnter
). - Configurar o banco de dados para phpmyadmin com
dbconfig-common
(mantenhaYes
e pressioneEnter
). - Criar e confirmar uma senha de aplicação MySQL para o phpMyAdmin. Escolha uma senha forte.
- Escolher o servidor web a ser reconfigurado automaticamente (selecione
-
Habilite as extensões PHP
mbstring
emysqli
(geralmente já habilitadas com a instalação, mas bom verificar):sudo phpenmod mbstring mysqli
-
Reinicie o serviço do servidor web para que as configurações do phpMyAdmin sejam carregadas:
sudo systemctl restart apache2 # ou sudo systemctl restart nginx
-
Acesse o phpMyAdmin no seu navegador web, geralmente em
http://localhost/phpmyadmin
. Você precisará fazer login com um usuário válido do MySQL (como oroot
ou o usuário que você criou para o seu projeto.
Siga os passos abaixo para configurar o banco de dados e o script PHP no seu ambiente local.
Este projeto utiliza a tabela Jogos
. Você precisa criar um banco de dados no seu MySQL local e executar o script SQL para criar esta tabela.
-
Conecte-se ao seu servidor MySQL local usando um cliente de linha de comando (como
mysql
) ou uma ferramenta GUI (como phpMyAdmin, MySQL Workbench). Utilize o usuário e senha que você configurou no seu MySQL local (o usuário padrão do sistema com direitos sudo que você mencionou provavelmente servirá como usuário MySQL também).mysql -u seu_usuario_mysql_local -p
-
Crie um novo banco de dados (se você ainda não tiver um que queira usar). Substitua
seu_nome_do_banco_local
pelo nome desejado.CREATE DATABASE seu_nome_do_banco_local;
-
Selecione o banco de dados que você acabou de criar ou que pretende usar.
USE seu_nome_do_banco_local;
-
Execute o script
Jogos.sql
para criar a tabelaJogos
e certifique-se de estar no diretório onde o arquivoJogos.sql
está localizado ou forneça o caminho completo.SOURCE Jogos.sql;
Ou, se já estiver no cliente
mysql
:-- Dentro do cliente mysql SOURCE /caminho/completo/para/Jogos.sql;
A tabela
Jogos
será criada no banco de dados selecionado.(Nota: O arquivo
banco.sql
está incluído apenas para referência, pois ele criava a tabela 'dados' usada na versão original doindex.php
.)
O arquivo index.php
precisa ser configurado com os detalhes de conexão do seu banco de dados MySQL local.
-
Abra o arquivo
index.php
. -
Localize a seção de configuração de conexão:
// Configurações para conectar ao seu MySQL Server LOCAL no Ubuntu $servername = "localhost"; // Endereço do servidor MySQL local. Use "127.0.0.1" se "localhost" der problema. $username = "SEU_USUARIO_MYSQL_LOCAL"; // <-- *** SUBSTITUA *** pelo seu usuário MySQL local $password = "SUA_SENHA_MYSQL_LOCAL"; // <-- *** SUBSTITUA *** pela sua senha do usuário MySQL local $database = "SEU_NOME_DO_BANCO_LOCAL"; // <-- *** SUBSTITUA *** pelo nome do banco de dados
-
Substitua os placeholders (
SEU_USUARIO_MYSQL_LOCAL
,SUA_SENHA_MYSQL_LOCAL
,SEU_NOME_DO_BANCO_LOCAL
) pelas suas credenciais reais e o nome do banco de dados que você usou na etapa anterior.- Para
$username
, use o seu usuário padrão do sistema, se for esse que você usa para o MySQL. - Para
$password
, use a senha deste usuário no MySQL. - Para
$database
, use o nome do banco de dados onde você criou a tabelaJogos
.
- Para
-
Salve o arquivo
index.php
. -
Coloque o arquivo
index.php
no diretório raiz do seu servidor web local (por exemplo,/var/www/html/
para Apache padrão ou oroot
configurado no seu Nginx).
Após configurar o banco de dados e o script PHP, você pode acessá-lo via navegador web.
- Certifique-se de que seu servidor web e o PHP-FPM (se estiver usando Nginx/PHP-FPM) estão rodando.
- Abra seu navegador e acesse a URL correspondente ao local onde você colocou o arquivo
index.php
(ex:http://localhost/index.php
ouhttp://localhost:PORTA/index.php
).
A cada vez que você acessar a página, o script PHP tentará se conectar ao banco de dados local, gerar dados aleatórios e inserir um novo registro nas colunas Titulo
, Plataforma
, Midia
, Rergiao
, EstadoConservacao
, e DataAquisicao
na tabela Jogos
. Se a inserção for bem-sucedida, você verá uma mensagem de confirmação no navegador.
Jogos.sql
: Contém a instruçãoCREATE TABLE
para criar a tabelaJogos
para catalogar uma coleção de jogos físicos ou biblioteca de jogos digitais. Inclui colunas como Título, Plataforma, Mídia, Região, etc.index.php
: Script PHP que se conecta a um banco de dados MySQL e insere dados na tabelaJogos
. Contém a lógica de conexão e a query SQL adaptada para o ambiente local.
Esta seção lista problemas comuns que podem ocorrer durante a configuração e execução do projeto e como solucioná-los.
-
O que significa: Este erro ocorre quando o servidor MySQL tenta usar o plugin de autenticação
mysql_native_password
para a conexão (geralmente porque o usuário MySQL está configurado para usá-lo ou é o padrão desejado), mas o servidor não conseguiu carregar ou habilitar este plugin durante a inicialização. -
Como verificar o status do plugin: Conecte-se ao seu servidor MySQL via terminal (como root ou um usuário com privilégios suficientes, ex:
sudo mysql
oumysql -u root -p
). * Execute o seguinte comando SQL:
SHOW PLUGINS;
- Provavelmente o plugin é o penúltimo da lista. Em seguida verifique se na coluna
STATUS
está comoDISABLED
ouENABLED
. Se estiver comoENABLED
está tudo certo, se estiver comoDISABLED
vamos realizar os seguintes passos:
-
Edite o arquivo de configuração para o MySQL no diretório de inclusão, que é o local recomendado para configurações personalizadas. O arquivo que precisa ser editado é o
my.cnf
localizado no diretório/etc/mysql/mysql.conf.d/
. Use um editor de texto com privilégios de superusuário:sudo nano /etc/mysql/mysql.conf.d/my.cnf
-
Adicione a seguinte linha sob a seção
[mysqld]
no arquivo. Se a seção[mysqld]
não existir, adicione o cabeçalho e a linha no final do arquivo.[mysqld] mysql_native_password=ON
Certifique-se de que a linha não está comentada (não começa com
#
). -
Salve o arquivo e feche o editor.
-
Reinicie o serviço MySQL Server para que a nova configuração seja aplicada.
sudo systemctl restart mysql
-
Se o plugin não estiver instalado, faremos a instalação, enquanto conectados ao servidor MYSQL via terminal
sudo mysql
, com o comando:
INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password.so';`
- Verifique o status do serviço MySQL para garantir que ele reiniciou sem erros. Se houver erros, verifique os logs (
sudo less /var/log/mysql/error.log
) para encontrar a causa.
-
Após o MySQL reiniciar com sucesso, o plugin
mysql_native_password
deverá estar ativo, resolvendo este erro de conexão. -
Caso, após a instalação do phpmyadmin, o endereço
http://localhost/phpmyadmin
não abrir o gestor, criaremos o arquivophpmyadmin.conf
no diretórioconf-available
, do Apache, usando um editor de texto comsudo
:```bash sudo nano /etc/apache2/conf-available/phpmyadmin.conf ```
-
Copie e cole o seguinte conteúdo neste arquivo:
# # Apache configuration for phpMyAdmin # Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php <IfModule mod_authz_core.c> # Apache 2.4+ Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Allow,Deny Allow from All </IfModule> </Directory> # Allow for phpMyAdmin's setup directory <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> # Apache 2.4+ Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Allow,Deny Allow from All </IfModule> </Directory> # Exclude the /setup directory from being indexed by AllowOverride indexes <Directory /usr/share/phpmyadmin/setup/> Options -Indexes </Directory>
-
Salve o arquivo (Ctrl+O, Enter em
nano
) e saia (Ctrl+X emnano
). -
Habilite este arquivo de configuração usando o comando
a2enconf
:sudo a2enconf phpmyadmin
-
Reinicie o serviço Apache2 para que a nova configuração seja aplicada:
sudo systemctl restart apache2
-
Verifique o status do Apache2 para garantir que reiniciou sem erros:
sudo systemctl status apache2
-
- Acesse o phpMyAdmin no seu navegador web, geralmente em
http://localhost/phpmyadmin
. Você precisará fazer login com um usuário válido do MySQL (como oroot
ou o usuário que você criou para o seu projeto).
Nota: O phpMyAdmin é instalado por padrão no diretório /usr/share/phpmyadmin
. Não é necessário mover esta pasta. O acesso via web em /phpmyadmin
é feito através de um apelido (alias) configurado no Apache.