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ãomysqlihabilitada. 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,apache2ounginx) 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
apache2pressionandobarra de espaçoe depoisEnter). - Configurar o banco de dados para phpmyadmin com
dbconfig-common(mantenhaYese 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
mbstringemysqli(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 orootou 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_localpelo 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.sqlpara criar a tabelaJogose certifique-se de estar no diretório onde o arquivoJogos.sqlestá 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
Jogosserá criada no banco de dados selecionado.(Nota: O arquivo
banco.sqlestá 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.phpno diretório raiz do seu servidor web local (por exemplo,/var/www/html/para Apache padrão ou orootconfigurado 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.phpouhttp://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 TABLEpara criar a tabelaJogospara 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_passwordpara 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 mysqloumysql -u root -p). * Execute o seguinte comando SQL:
SHOW PLUGINS; - Provavelmente o plugin é o penúltimo da lista. Em seguida verifique se na coluna
STATUSestá comoDISABLEDouENABLED. Se estiver comoENABLEDestá tudo certo, se estiver comoDISABLEDvamos 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.cnflocalizado 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_passworddeverá estar ativo, resolvendo este erro de conexão. -
Caso, após a instalação do phpmyadmin, o endereço
http://localhost/phpmyadminnão abrir o gestor, criaremos o arquivophpmyadmin.confno 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 orootou 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.
![Mascote Plucky Puffin [Ubuntu 25.04] plucky-puffin-mascot](https://i.ibb.co/vCWBpvBL/UBUNTU-PLUCKY-PUFFIN-50px.webp)


