La posible solución es muy simple, NO utilices el usuario root para conectar, crea un nuevo usuario con permisos a la BD que creaste y que ese usuario se pueda conectar desde cualquier ubicación.
Errores que veo. NUNCA se debe desactivar el cortafuegos de un equipo servidor y menos si está en producción. Eso es dejarlo abierto a que le puedan hacer cualquier cosa.
Agrega una regla para el puerto de escucha de MySQL (yo lo quitaría e instalaría MariaDB) que es el 3306.
El usuario root, por defecto viene con permisos LOCALES, o sea, que no podes usarlo para conectarte desde otro punto de la red. Si me decis que con phpmyadmin lo podes hacer, es porque simplemente te estas conectando con Apache y es LOCAL sin importar que estés en otro punto de la red.
Para crea el usuario, simplemente podes hacerlo con el siguiente comando.
Código:
CREATE USER 'nombre_usuario'@'%' IDENTIFIED BY 'tu_contrasena';
GRANT ALL PRIVILEGES ON * . * TO 'nombre_usuario'@'%';
FLUSH PRIVILEGES;
El signo de porcentaje (%), es para indicar que tendrá permisos de conexión en la red.
Muevo tu consulta a MySQL porque es claro que ahí está el problema y como consejo, investiga sobre los permisos de usuarios y BD de MySQL. Desde su sitio podes descargar el manual en PDF, verlo en html o incluso buscando en google algo puntual.