Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
Si está teniendo problemas con acceso del usuario root a mysql e inicializando la base de datos AppFuse, puede que necesita ejecutar uno de los siguientes pasos: Tabla de Contenidos
Establezca la contraseña del usuario root en build.properties [#1]Para establecer uan contraseña para su usuario root de mysql edite el fichero build.properties y edite las propiedades según necesidad: #database.jar=${postgresql.jar} #database.type=postgresql #database.name=appfuse #database.host=localhost #database URL para crear otras bases de datos (no funciona en pgsql) #database.admin.url=jdbc:${database.type}://${database.host}/template1 #database.admin.username=postgres #database.admin.password=postgres #hibernate.dialect=net.sf.hibernate.dialect.PostgreSQLDialect #database.driver_class=org.postgresql.Driver #database.url=jdbc:${database.type}://${database.host}/${database.name} Debe quitar el comentario de la línea de la contraseña para que se parezca a esto: database.admin.password=micontraseñaderoot Donde micontraseñaderoot es su contraseña del usuario root. Su cuenta root no está correctamente inicializada [#2]Cuando entra a mysql hay un cierto número de bases de datos disponibles para usted. Una de esas bases de datos se llama mysql que es la base de datos del sistema. En la base de datos mysql hay una tabla llamada ‘users’ donde se almacena toda la información de los usuarios de mysql junto con sus permisos (sus privilegios). La tabla de usuarios contiene una columna ‘host’ (máquina). El usuario root necesita una entrada de registro en la tabla de usuarios para cada máquina desde la cual va a entrar, p.e. ‘mipc’, ‘localhost’ y el comodín ‘%’. Tanto las columnas de permisos como de máquinas necesitan estar correctamente establecidas para que la inicialización de ant se ejecute limpiamente. Estas instrucciones le dirán como configurar el usuario root sin contraseña. Una vez que ant haya inicializado correctamente debe volver a poner la contraseña en la cuenta root. Para mas información deberá mirar la sección How to Reset the Root Password ] (en inglés) en el Manual de Referencia de MySQL. (Por favor advierta que no tiene que establecer la contraseña de root de esta forma , es posible realizar los siguientes pasos y darle al usuario root una contraseña, vea [1]. Aún así los siguientes pasos deberían funcionar para usted). En este ejemplo, suponemos que su nombre de máquina es ‘mipc’, donde se muestra ${MYSQL_HOME} remplácelo con la ruta a su instalación de mysql. Al final de estos pasos le debería ser posible entrar a su base de datos mysql y ver esto: $ mysql -u root mysql> use mysql; Database changed mysql> select user, host, password from user where user = "root"; +------+-----------+----------+ | user | host | password | +------+-----------+----------+ | root | localhost | | | root | mipc | | | root | % | | +------+-----------+----------+ 3 rows in set (0.00 sec) Y si ejecuta select * from user where user = "root"; deberiamos ver ‘Y’ en todas las columnas de permisos en la tabla de usuarios, lo cual indica que el usuario root tiene todos las opciones de permisos para poder inicializar la base de datos de appfuse y darle privilegios al usuario test sobre ella. Lo primero que queremos hacer es parar la base de datos mysql, así que ejecutamos este comando: mysqladmin -u root -p shutdown Si mysqld está aun ejecutándose (compruebe el proceso en UNIX o use el Administrador de Tareas en Windows), entonces mate el proceso: (UNIX) killall mysqld (Windows) Use el administrador de tareas o pare el servicio mysqld Ahora queremos rearrancar mysql pero saltándonos las tablas de autentificación para que a así podamos cambiar las tablas de usuarios de la base de datos, para esto ejecutamos este comando. Para UNIX: ${MYSQL_HOME}/bin/mysqld_safe --skip-grant-tables & Para Windows use el comando mysqld-nt, también omita carácter “ampersand” (&): ${MYSQL_HOME}\bin\mysqld-nt --skip-grant-tables Ahora entre de nuevo en mysql y elimine cualquier entrada de root en su tabla de usuarios: mysql -u root use mysql; delete from user where user='root'; commit; FLUSH PRIVILEGES; Ahora podemos inicializar al usuario root usando el comando GRANT, para ello ejecute los siguientes comandos (Advierta que debería cambiar mipc a su nombre de máquina o nombdredemaquina.nombrededominio): mysql -u root use mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'mipc' WITH GRANT OPTION; FLUSH PRIVILEGES; quit; Advertencia: Si quiere establecer la contraseña de root en esta fase (y entonces especificarla en build.properties como se dijo en [1]), entonces necesita modificar el comando GRANT de la siguiente forma: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ‘micontraseñaderoot' WITH GRANT OPTION; Remplace micontraseñaderoot con lo que desee poner como contraseña del usuario root. Ahora tenemos al usuario root inicializado apropiadamente. Rearranquemos mysql sin saltarnos el proceso de autentificación. Pare mysql usando las instrucciones de arriba una vez más. Ahora, si arranca la inicialización ant todo debería ir correctamente. Si aún obtiene errores seguramente necesite proceder con el paso [3]. Si está todo funcionando no debería establecer la contraseña de root como se describe en [4]. ] Los permisos para la cuenta del usuario test no están correctamente establecidos [#3]Si está viendo un mensaje de error que dice: Invalid authorization specification message from server: "Access denied for user: 'test@mypc' (Using password: YES)" Entonces necesita modificar metadata/sql/mysql-create.sql para que especifique su nombre de máquina (junto con su nombre de dominio si tiene uno, si no solamente su nombre de máquina). Aquí está un ejemplo de cómo podría verse un archivo modificado si su nombre de máquina es ‘mipc’: create database if not exists appfuse; grant all privileges on appfuse.* to test@localhost identified by "test"; grant all privileges on appfuse.* to test@mipc identified by "test"; Establezca la contraseña para su usuario root de mysql [#4]Para establecer la contraseña de root, teclee los siguientes comandos: $ mysql -u root mysql> use mysql; Database changed Ahora queremos establecer el campo contraseña para cualquier registro del usuario root en la tabla de usuarios. Teclee este comando: UPDATE user SET Password=PASSWORD('micontraseñaderoot') WHERE User='root'; FLUSH PRIVILEGES; Siendo micontraseñaderoot su nueva contraseña para el usuario root.
|