Você pode conceder ao usuário todos os privilégios necessários usando o seguinte comando:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
IDENTIFIED BY 'your_pass'
WITH GRANT OPTION;
FLUSH PRIVILEGES;'
%
significa todos os hosts, para que o usuário especificado possa acessar o banco de dados a partir de qualquer endereço IP. Você pode especificar seu próprio endereço IP se tiver o seu próprio.
Não se esqueça de adicionar uma exceção ao firewall no seu VPS, se você tiver um.
Se você usar ufw
, poderá executar o seguinte:
sudo ufw allow 3306/tcp
sudo service ufw restart
Então, finalmente, não se esqueça de editar my.cnf
no seu sistema, que é o lugar em /etc/mysql/my.cnf
se você usar o Ubuntu.
abra o arquivo usando seu editor de texto favorito:
por exemplo, nano: sudo nano /etc/mysql/my.cnf
em seguida, adicione o seguinte:
[mysqld]
bind-address= your-server-ip-address
#skip-networking
Salve o arquivo e saia.
Não esqueça então de correr
sudo systemctl restart mysql
Você pode testar seu trabalho usando este script php
<?php
$dbname = 'dbname';
$dbuser = 'db_user';
$dbpass = 'db_pass';
$dbhost = 'your-server-ip-address';
try {
$connection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser,
$dbpass);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}