Foros del Web » Programando para Internet » PHP »

phpmyadmin

Estas en el tema de phpmyadmin en el foro de PHP en Foros del Web. Hola, hice esta pregunta en el foro de linux, pero parece que no corresponde alli. Busque en los foros, pero no pude hallar una respuesta ...
  #1 (permalink)  
Antiguo 03/03/2003, 11:48
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
phpmyadmin

Hola, hice esta pregunta en el foro de linux, pero parece que no corresponde alli.
Busque en los foros, pero no pude hallar una respuesta similar.
Mi pregunta es la siguiente.
Tengo instalado phpmyadmin 2.4.0, en mi S.O. LInux
el problema es que no me permite crear bases de datos.
Logro crearlas desde consola pero no me las muestra en el menu despegable de phpmyadmin.
de echo a la única base de datos que tengo acceso es a "test".
con phpmyadmin 2.2.0 al intentar crear una base de datos me aparece el siguiente error:

Error

SQL-query :

CREATE DATABASE `afd`

MySQL ha dicho:

Access denied for user: '@localhost' to database 'afd'

en el archivo config.inc.php tengo los siguientes datos:

Código PHP:
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin-2.4.0';


/**
 * Disable the default warning about $cfg['PmaAbsoluteUri'] not being set
 * You should use this if and ONLY if the PmaAbsoluteUri auto-detection
 * works perfectly.
 */
$cfg['PmaAbsoluteUri_DisableWarning'] = FALSE;

/**
 * Disable the default warning that is displayed on the DB Details Structure page if
 * any of the required Tables for the relationfeatures could not be found
 */
$cfg['PmaNoRelation_DisableWarning']  = FALSE;


/**
 * Server(s) configuration
 */
$i 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use $cfg['Servers'][0].
// You can disable a server config entry by setting host to ''.
$i++;
$cfg['Servers'][$i]['host']          = 'localhost'// MySQL hostname
$cfg['Servers'][$i]['port']          = '';          // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection
                                                    // (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                    // (this user must have read-only
$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                    // and "mysql/db" tables)
$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = 'micontraseña'
El caso es que en phpmyadmin 2.4.0 no me da la opción de crear una bd. pk no tengo privilegios.
en phpmyadmin 2.2.0 el error mencionado arriba.
como dije desde consola logro crear bases de datos pero desde phpmyadmin no me las muestra.

agradesco sus respuestas
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #2 (permalink)  
Antiguo 03/03/2003, 12:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ese usuario "root" que indicas en la configuración de phpMyadmin NO es el root del sistema Linux ..

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'micontraseña';

El nombre es lo de menos el del usuario . el caso q por defecto Mysql crea minimo 2 usuarios .. uno llamado "root" sin contraseña y hasta uno sin contraseña y sin nombre para acceder desde "localhost" con todos los privilegios q se le pueda otorgar a un usuario ...

Revisa el tema este y nos cuentas ..

Un saludo,
  #3 (permalink)  
Antiguo 05/03/2003, 09:11
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
Bien, en el archivo /etc/my.cnf tengo lo siguiente:
Código:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
según esto se supon que el usuario mysql, con privilegios es "mysql".
Si cambio esa variable en el archivo config.inc.php de phpmyadmin, sigo sin privilegios para crear bases de datos.
un detalle,
en la parte superior de la página de phpmyadmin aparece lo siguiente
Código:
Bienvenido a phpMyAdmin 2.4.0

MySQL 3.23.52 ejecutándose en localhost como apache@localhost
a pesar de que en el config.inc.php, le cambié el nombre de usuario a mysql.

Ayuda pliss
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #4 (permalink)  
Antiguo 07/03/2003, 14:18
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
ayuda por favor.
Borré e instalé nuevamente mysql, y sigo con el mismo problema.
no sé que más hacer.
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #5 (permalink)  
Antiguo 07/03/2003, 14:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuanto entras por consola a Mysql .. q usuario/password usas? .. Ese es el que deberias usar en (config.inc.php de phpMyadmin):

$cfg['Servers'][$i]['user'] = 'usuario'; // MySQL user
$cfg['Servers'][$i]['password'] = 'contraseña';

o probar (porque es probable que tengas creado los usuarios: root sin contraseña y sin nombre de usuario ni password ..

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = '';

ó

$cfg['Servers'][$i]['user'] = ''; // MySQL user
$cfg['Servers'][$i]['password'] = '';

Un saludo,
  #6 (permalink)  
Antiguo 07/03/2003, 15:13
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
bueno, el problema creo que lo solucioné, al parecer estaba en la configuración de php.ini, ya que no había puesto el usuario con el que debía entrar a mysql.
Lo que hice, fue modificar las variables de php.ini
ejemplo
Código:
sql.safe_mode = Off
¿estará correcto? ¿que riesgos corro?
luego abajo:
Código:
mysql.default_port = 3306

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host = localhost

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user = root

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo cfg_get_var("mysql.default_password")
; and reveal this password!  And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password = micontraseña
y el archvo config.inc.php. con los mismos datos.

Es correcto haber puesto el safe_mode a off??

Saludos
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #7 (permalink)  
Antiguo 07/03/2003, 16:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé exactamente a que se refire la directiva:

sql.safe_mode = Off

(es decir .. a que Motor de base de datos .. o es a todos? ...)

Usando esas directivas en tu PHP.ini .. "En teoría" puedes conectar a tus BD usando simplemente mysql_connect() (sin parametros de host/user/pas ...) aunque eso es seguro (no andas paseando el user/pass en tus scripts.php) .. no podras hacer un script que conecte a otro servidor Mysql desde PHP con esa configuración. Ahora . supongo q si q podrías tener problemas de seguridad si usas hosting virtual con mas usuarios .. ahí tendrias q terne mucho cuidado en los usuarios q creas en Mysql y los permisos q les des ...

Tambien el propio php.ini dice:

Código PHP:
; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run '
echo get_cfg_var("mysql.default_password")
; and 
reveal this password!  And of courseany users with read access to this
file will be able to reveal the password as well.
mysql.default_password 
Así q cuidado .. jeje me arrepiento un pco de lo anterior.

Para mas seguridad .. tal vez la mejor opción sea tener tus típicos config.php (con los datos de acceso a Mysql) fuera de tu documment_root (para que no queden accesibles via HTTP) y protegido el directorio y/o archivo donde lo metas ...

(así funciona por ejemplo el hosing gratuito Lycos ..)

Un saludo,

Última edición por Cluster; 07/03/2003 a las 16:05
  #8 (permalink)  
Antiguo 08/03/2003, 09:01
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 2
Gracias Cluster,
Respecto de lo anterior, con esos parámetros en mi php.ini, trato de conectarme a mysql desde mis scripts sin agregar contraseña, con mysql_connect(), pero me pide los datos de conección.
Por lo tanto, igual tengo que trabajar con los config.
Me funciona normal, y no he tenido problemas. (Hasta el momento).
De todos modos, buscaré nuevas alternativas de configuración donde esté seguro de no poner en riesgos mis datos.

Saludos
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #9 (permalink)  
Antiguo 08/03/2003, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo ideal es crear usuarios especificos para cada base de datos .. asignandoles las Base de datos que trabaje ese usuario solo y con los permisos de las acciones que haga .. ejemplo .. la mayoría de aplicacieones tan solo hacen SELECT, INSERT, UPDATE y DELETE .. (tal vez algun DROP .. o algo mas) pero eso es lo típico .. En consecuencia .. a ese usuario solo dale esos permisos y restringelo a la Base de datos que le corresponda ..

Con eso .. si por A o B motivo se filtra el user/pass de esa aplicación tuya .. solo afectará a esa Base de datos y no a todo "Mysql" como suele pasar cuando se asignan usuarios "por defecto" con todos los permisos ...

Tambien restrigir los usuarios a host "local" tambien es un medio de serguridad para lo que corresponde al usuario "PHP " (tus aplicaciones) que usen de Mysql ..

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:11.