Tengo un local de mysql server en mi Ubuntu 11.10 escritorio. El nombre de host = localhost; nombre de usuario = root; contraseña = root; nombre de base de datos = CBS. Estoy realmente confundido, porque cuando me de acceso a mysql usando terminal, mysql administrator, y mysql query browser puedo usar la autenticación de los que he mencionado anteriormente y que todo está bien. Mi problema es que cuando configuro jdbc.propiedades en mi Aplicación Java que estoy recibiendo este error:

org.springframework.web.util.NestedServletException: procesamiento de Solicitud de error; excepciones anidadas es org.springframework.jdbc.UncategorizedSQLException: Hibernación de la operación: No se puede abrir la conexión; uncategorized SQLException para SQL [???]; SQL estado [28000]; código de error [1045]; Access denied for user ‘root ‘@’localhost’ (utilizando password: YES); excepciones anidadas es java.sql.SQLException: Access denied for user ‘root ‘@’localhost’ (utilizando password: YES)

Mi archivo de configuración, jdbc.propiedades:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/CBS
jdbc.username=root  
jdbc.password=root

Por cierto, la razón por la que va a utilizar el servidor local debido a que nuestro servidor principal de apagado, así que tengo que usar mi local de mysql para continuar con mi proyecto. Por favor me ayude… Gracias de antemano.

  • ¿Cuál es el nombre de la máquina cuando se utiliza mysql administrador (o el de otras herramientas)? Como duffymo se mencionan a continuación usted puede tener una subvención problema con que usuario se conecta a localhost. Yo no veo ninguna mención sobre el nombre de host en la primera parte de su mensaje.
  • hacer ejecutar su «aplicación java» uso de la raíz creds ? cuando youy la aplicación se ejecuta a – check it out usando «ps-ef | grep <nombre de la aplicación java>» y ver qué usuario está ejecutando – en caso que no se trata de «raíz» tiene su respuesta en ese momento.
  • localhost
InformationsquelleAutor NinjaBoy | 2012-02-15

2 Comentarios

  1. 5

    Más que probable que su marco es el registro en su base de datos local como 127.0.0.1. Que va a crear un problema de inicio de sesión en MySQL si no se ha definido un dominio adecuado del ámbito de la credencial. Pruebe esto para comprobar:

    mysql -uroot -proot
    SELECT * from mysql.user WHERE user = 'root';

    Si no es ‘root’@’127.0.0.1’, entonces ha encontrado el problema y remediarlo, hacer una de dos cosas:

    1. Definir un ámbito de dominio de la credencial para ‘root’, en ‘127.0.0.1’.
    2. Definir un dominio comodín ámbito de la credencial para ‘root’, así que usted puede
      inicio de sesión para MySQL, con esas credenciales desde varias ubicaciones.

    He aquí un ejemplo de la segunda:

    mysql -uroot -proot
    
    CREATE USER 'root'@'%' IDENTIFIED BY 'root';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    En una nota de lado, sin duda, recomendaría el uso de algo más creativo para tu id de usuario y la contraseña. Especialmente si usted tiene sockets TCP habilitado para su servidor.

    • Cuando me encontré con el comando SELECT * from usuarios where user = ‘root’; ¿qué base de datos se utilizo para ver si tengo un ‘root’@’127.0.0.1’? Soy nuevo en esto.
    • En realidad, el comando es select * from mysql.user where user = 'root';. He actualizado mi respuesta.
    • Vi un montón de caracteres aleatorios como ‘+’ y ‘-‘. Sin embargo, yo vi esta línea: | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y. significa que tengo una raíz?
    • Eh, hazme un favor y ejecutar esta en mysql select user, host from user, y dime cuántas filas se muestran con el usuario ‘root’, y lo que el campo host para las filas.
    • Tengo 8 filas. Vi user = root y host = localhost.
    • Bien, suponiendo que no vea ‘root’ y host = ‘127.0.0.1’, ejecutar la solución que he mostrado en mi respuesta.
    • Im sorry pero en realidad yo lo vi. nombre de usuario = root y host = 127.0.0.1. Es 127.0.0.1 lo mismo con localhost? De todos modos yo vi ambos.
    • permítanos continuar esta discusión en el chat

  2. 3

    Usted podría tener que CONCEDER permisos de acceso a la base de datos.

    Mirar el MySQL docs para algo que se parece a esto:

    create database pmt;
    create user pmt identified by 'pmt';
    grant all on pmt.* to 'pmt'@'%';

    «pmt» es sólo un ejemplo de arriba. Se me ocurrió poner el nombre de la base de datos, nombre de usuario y contraseña de la misma. Yo no recomiendo que como una mejor práctica. Es algo de lo que he hecho para algunos de los locales de desarrollo.

    Yo, personalmente, no me gusta la Concesión de acceso a la raíz de cualquier aplicación. Yo no los uso raíz del nombre de usuario y contraseña, incluso en un juguete de la aplicación. No se necesita mucho esfuerzo para crear un nuevo usuario y CONCEDER los permisos correspondientes.

    • ¿Cómo voy a hacer eso? Por favor, muéstrame. Soy nuevo en esta cosa.
    • ¿Tengo que reiniciar el servidor después de la ejecución de los comandos?
    • reiniciar mysql? no.

Dejar respuesta

Please enter your comment!
Please enter your name here