usuario una servidor remoto remota permitir password para errores detectaron denegado datos cómo conectarse conectar algunos acceso php mysql phpmyadmin directadmin

php - una - "Acceso denegado para el usuario" después de mover la base de datos MySQL al servidor remoto



cómo permitir el acceso remoto a una base de datos mysql (1)

Tengo algunos problemas para acceder a mi base de datos.

La secuencia de comandos funcionó antes en mi servidor local. Lo importé en otro servidor y el otro me está dando un mensaje de acceso denegado.

El mensaje que se da es: Access denied for user ''root''@''10.4.1.163'' (using password: YES)

El script que estoy usando es:

<?php // Connect to database server mysql_connect("localhost", "root", "password") or die (mysql_error ()); // Select database mysql_select_db("database") or die(mysql_error()); // SQL query $strSQL = "SELECT * FROM users WHERE user_id=''". $_SESSION[''USER_ID''] ."''"; // Execute the query (the recordset $rs contains the result) $rs = mysql_query($strSQL); // Loop the recordset $rs // Each row will be made into an array ($row) using mysql_fetch_array while($row = mysql_fetch_array($rs)) { // Write the value of the column FirstName (which is now in the array $row) echo $row[''Name''] . " "; } // Close the database connection mysql_close(); ?>

También traté de cambiar localhost a la dirección IP 10.4.1.163.

Qué está mal con mi script Estoy seguro de que la contraseña que estoy usando es la correcta.

¿Alguien sabe cómo puedo solucionar esto?


Los permisos de MySQL se basan en la dirección a la que se conectan, así como en el usuario. Así que root @ localhost y [email protected] tendrán dos conjuntos separados de permisos. Cambiar localhost a 127.0.0.1 como num8er mencionado probablemente funcione si su código y la base de datos están en el mismo servidor.

Si tiene acceso terminal a la caja donde está su php, podría intentar conectarse, descartando todo lo que tenga que ver con php usando esto:

mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"

Tenga en cuenta que no hay espacio entre -p y la contraseña. Si tiene éxito, obtendrá una lista de tablas en la database de database .

Para otorgar acceso a otros usuarios o para otro nombre de host / IP, querrá ejecutar algo similar a esto: (aunque realmente debería crear un usuario separado con permisos más restringidos según sus requisitos).

GRANT ALL PRIVILEGES ON `database`.* TO ''root''@''10.4.1.163'';

Consulte los documentos en GRANT de MySQL aquí - http://dev.mysql.com/doc/refman/5.7/en/grant.html

En una nota al margen, por favor, por favor, no solo transfiera datos antiguos a una consulta sin al menos usar mysql_real_escape_string ( http://php.net/manual/en/function.mysql-real-escape-string.php ) en él antes de la mano. También puede ver en PDO ( http://php.net/manual/en/book.pdo.php ), que generalmente se prefiere sobre las funciones mysql_ ahora obsoletas mysql_