Relaciones en phpMyAdmin
Hace unos meses escribí un pequeño tutorial en el que explicaba cómo crear bases de datos, tablas y relaciones con phpMyAdmin. Ese tutorial lo hice con la versión 2.8.1. Al parecer en versiones recientes de phpMyAdmin se ha desactivado la vista de relaciones en la estructura de tablas, por lo que no podemos realizar relaciones entre ellas. He recibido un par de correos de personas que no podían realizar relaciones, así que me puse a investigar un poco y en este wiki encontré la solución.

Activar la vista de relaciones en phpMyAdmin
Para activar la vista de relaciones tenemos que abrir, en primer lugar, el archivo config.inc.php. Después buscamos la línea $cfg[’Servers’][$i][’pmadb’] y la dejamos como se muestra a continuación:
$cfg[’Servers’][$i][’pmadb’] = ‘phpmyadmin’;
A continuación buscamos la línea $cfg[’Servers’][$i][’relation’] y la dejamos de la siguiente manera:
$cfg[’Servers’][$i][’relation’] = ‘pma_relation’;
Tan sólo nos queda ejecutar un script que se encuentra en la carpeta /scripts de phpmyadmin. Ese script se llama create_tables.sql y lo podemos ejecutar de varias maneras.Una de ellas es abriendo la página principal de phpMyAdmin pulsando a continuación sobre “Importar”.
Pulsamos a continuación el botón “Examinar” y seleccionamos el script create_tables.sql que se encuentra en el directorio /scripts.
Hecho esto ya podremos ver la “Vista de relaciones” y realizar relaciones entre tablas con phpMyAdmin.
Popularity: 6% [?]
Otras entradas que te pueden interesar
- Tutoriales de Pidgin y k3b
- Instalar XAMPP en Ubuntu
- phpMyAdmin. Gestión de bases de datos
- Crea una nube de etiquetas en tu blog con ZoomClouds
- Dia. Editor de diagramas en Ubuntu
- Transformación del modelo entidad-relación al modelo relacional
- Comparativa de sistemas operativos. Vista vs Ubuntu



Muchisimas Gracias por tu artículo, me ayudó muchisimo. Claudia
Venezuela
Claudia
6 Oct 07 at 2:47 am
Saludos
Seguí todas las instrucciones, pero al momento de “Examinar” en la ruta /var/www/phpmyadmin/script no hallé el script: create_tables.sql
me puedes ayudar
tengo instalado:
phpmyadmin versión 4:2.9.1.1-6
José David Lacruz
10 Nov 07 at 3:19 am
ola alejandro segui todos los pasos del manual pero me salio un error :
MySQL ha dicho:
#1133 - Can’t find any matching row in the user table
si me podrias ayudar con este error te lo agradecere, estoy usando el appserv2.5.9 y con un phpmyadmin 2.10.2
carlos
22 Ene 08 at 9:54 pm
Hola Carlos. Necesito saber cuando te da el error para ayudarte. ¿Es cuando ejecutas el script create_tables.sql?
Alejandrox
22 Ene 08 at 10:05 pm
hola alejandro hice todos los pasos del amnual y no me aparece vista de relaciones
la version que tengo instalada es:
phpmyadmin2.10.1
mary
24 Ene 08 at 12:34 am
hola ya hice todo lo del manual y no me sale la vista de relaciones
la version que tengo instalada el
phpmyadmin 2.10.1
mary
24 Ene 08 at 12:42 am
Cambié los valores de las variables y ejecuté el script pero la vista de relaciones no aparece.
pablo
19 Feb 08 at 2:11 am
Hola Alejandroy muchas gracias por la documentación. Yo tampoco puedo ver en la carpeta script el archivo create_tables.sql. My version de phpMyAdmin es la 2.10.2
Alguién sabe como conseguir ese script??
Gracias
Camilo
11 Mar 08 at 7:53 pm
yo uso la version 2.11.1 he seguido los pasos y tampoco me ha funcionado… sabrias por que gracias
Luis
11 Mar 08 at 8:38 pm
Pues vaya. Parece que hay varias personas a las que no les aparece el script create_tables.sql. Copio y pego el contenido del fichero create_tables.sql que yo tengo, a ver si os sirve de ayuda.
– ——————————————————–
– SQL Commands to set up the pmadb as described in Documentation.html.
–
– DON’T RUN THIS SCRIPT ON MySQL 4.1.2 AND ABOVE!
– Instead, please run create_tables_mysql_4_1_2 .sql.
–
– This script expects the user pma to already be existing. If we would put a
– line here to create him too many users might just use this script and end
– up with having the same password for the controluser.
–
– This user “pma” must be defined in config.inc.php (controluser/controlpass)
–
– Please don’t forget to set up the tablenames in config.inc.php
–
– $Id: create_tables.sql 10257 2007-04-07 14:40:24Z lem9 $
– ——————————————————–
–
– Database : `phpmyadmin`
–
DROP DATABASE IF EXISTS `phpmyadmin`;
CREATE DATABASE `phpmyadmin`;
USE phpmyadmin;
– ——————————————————–
–
– Privileges
–
GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
‘pma’@localhost;
– ——————————————————–
–
– Table structure for table `pma_bookmark`
–
CREATE TABLE `pma_bookmark` (
`id` int(11) NOT NULL auto_increment,
`dbase` varchar(255) NOT NULL default ”,
`user` varchar(255) NOT NULL default ”,
`label` varchar(255) NOT NULL default ”,
`query` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT=’Bookmarks’;
– ——————————————————–
–
– Table structure for table `pma_column_info`
–
CREATE TABLE `pma_column_info` (
`id` int(5) unsigned NOT NULL auto_increment,
`db_name` varchar(64) NOT NULL default ”,
`table_name` varchar(64) NOT NULL default ”,
`column_name` varchar(64) NOT NULL default ”,
`comment` varchar(255) NOT NULL default ”,
`mimetype` varchar(255) NOT NULL default ”,
`transformation` varchar(255) NOT NULL default ”,
`transformation_options` varchar(255) NOT NULL default ”,
PRIMARY KEY (`id`),
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
) TYPE=MyISAM COMMENT=’Column information for phpMyAdmin’;
– ——————————————————–
–
– Table structure for table `pma_history`
–
CREATE TABLE `pma_history` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`username` varchar(64) NOT NULL default ”,
`db` varchar(64) NOT NULL default ”,
`table` varchar(64) NOT NULL default ”,
`timevalue` timestamp(14) NOT NULL,
`sqlquery` text NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`,`db`,`table`,`timevalue`)
) TYPE=MyISAM COMMENT=’SQL history for phpMyAdmin’;
– ——————————————————–
–
– Table structure for table `pma_pdf_pages`
–
CREATE TABLE `pma_pdf_pages` (
`db_name` varchar(64) NOT NULL default ”,
`page_nr` int(10) unsigned NOT NULL auto_increment,
`page_descr` varchar(50) NOT NULL default ”,
PRIMARY KEY (`page_nr`),
KEY `db_name` (`db_name`)
) TYPE=MyISAM COMMENT=’PDF relation pages for phpMyAdmin’;
– ——————————————————–
–
– Table structure for table `pma_relation`
–
CREATE TABLE `pma_relation` (
`master_db` varchar(64) NOT NULL default ”,
`master_table` varchar(64) NOT NULL default ”,
`master_field` varchar(64) NOT NULL default ”,
`foreign_db` varchar(64) NOT NULL default ”,
`foreign_table` varchar(64) NOT NULL default ”,
`foreign_field` varchar(64) NOT NULL default ”,
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
KEY `foreign_field` (`foreign_db`,`foreign_table`)
) TYPE=MyISAM COMMENT=’Relation table’;
– ——————————————————–
–
– Table structure for table `pma_table_coords`
–
CREATE TABLE `pma_table_coords` (
`db_name` varchar(64) NOT NULL default ”,
`table_name` varchar(64) NOT NULL default ”,
`pdf_page_number` int(11) NOT NULL default ‘0′,
`x` float unsigned NOT NULL default ‘0′,
`y` float unsigned NOT NULL default ‘0′,
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
) TYPE=MyISAM COMMENT=’Table coordinates for phpMyAdmin PDF output’;
– ——————————————————–
–
– Table structure for table `pma_table_info`
–
CREATE TABLE `pma_table_info` (
`db_name` varchar(64) NOT NULL default ”,
`table_name` varchar(64) NOT NULL default ”,
`display_field` varchar(64) NOT NULL default ”,
PRIMARY KEY (`db_name`,`table_name`)
) TYPE=MyISAM COMMENT=’Table information for phpMyAdmin’;
– ——————————————————–
–
– Table structure for table `pma_designer_coords`
–
CREATE TABLE `pma_designer_coords` (
`db_name` varchar(64) NOT NULL default ”,
`table_name` varchar(64) NOT NULL default ”,
`x` INT(11) default NULL,
`y` INT(11) default NULL,
`v` TINYINT(4) default NULL,
`h` TINYINT(4) default NULL,
PRIMARY KEY (`db_name`,`table_name`)
) TYPE=MyISAM COMMENT=’Table coordinates for Designer’
Alejandrox
11 Mar 08 at 10:56 pm
Hola.
He realizado todos los pasos y no tube ningun problema, pero no puedo ver la vista relaciones. Alguien sabe como puedo lograrlo. La version de phpMyAdmin que he instalado es 2.10.2.
Gracias
Otoniel
23 Mar 08 at 8:34 am
Hola, yo he seguido los pasos y no he tenido ningún problema, incluso puedo acceder al apartado “Vista de Relaciones”.
Pero luego cuando estoy en la parte de “Examinar” los datos, no se me activan los hipervínculos para ir a su correspondiente Primary Key de la otra tabla.
Es decir, la Vista de Relaciones no tiene utilidad alguna.
Waxter
31 Mar 08 at 8:40 pm
Buenas yo tenia el mismo problema que alguno de vosotros. Yo lo arreglé importando el archivo create_tables_mysql_4_1_2 .sql que está en la mimsa carpeta que el mencionado en el tutorial. Probarlo y dercirme si es esooo
Saludos
marc
2 Abr 08 at 7:15 pm
Probe ejecutar por consultas el contenido de create_tables y me da error “#1064 ” no hay algun lugar de donde descargar integro el scrip?
Red
25 Abr 08 at 8:14 pm
Gracias si me pueden colaborar
para poder activar la llave foranea en PHpmYAdmin
Nieves
2 May 08 at 7:29 pm
Hola muchisimas gracias por esta ayudita esta genial
Desconocida
6 May 08 at 9:54 pm
He configurado todo segun las indicaciones desde habilitar “innodb” y configuraciones para “pma”, pero no logro ver la interfase grafica para relacionar las tablas, alguien me puede explicar?
Adriano
23 May 08 at 2:16 pm
sigo los pasos hasta la hora de importar. pero en la página principal de phpmyadmin no me sale la opcion de importar.
gus
5 Jun 08 at 11:03 am
Ya realice los pasos que nos sugieres; pero tengo un pequeño problema. Al momento de querer importar el archivo create_tables.sql me marca un error. Bueno en si; si puedo cargar el archivo pero al momento de darle continuar me marca el error de:
#1133 - Can’t find any matching row in the user table
Y ya no puede segur viendo vista de relaciones.
Si no cargo el archivo create_tables.sql. Si lo puedo ver pero no me muestra lo que es; on delete , on update
zac-nicte
17 Jul 08 at 12:22 am
hola, yo quisiera savver como configurar el archivo config.inc, a mi me aparece ese archivo en /scripts
pero no encuentro la parte que dice $cfg[’Servers’][$i][’pmadb’] me podrias ayudar? mi mail es ppecler93@hotmail.com
nagato
23 Ago 08 at 6:25 pm
perdon me confundi es pepecler93@hotmail.com
nagato
23 Ago 08 at 6:25 pm
muy bueno segui los pasos y cero problemas. saludos desde Oaxaca, México
jorge martin
4 Sep 08 at 12:12 am
Funciono una parte
Segui los pasos y me paso lo mismo que carlos MySQL ha dicho:
#1133 - Can’t find any matching row in the user table
Esto se debe por que el usuario pda@localhost no existe desde privilegios en el home de phpmyadmin lo cree y luego corri el script y funciono me habilito vista de relaciones, pero no me habilitada lo de actualizar en cascada y todo esto que debo hacer
Muchas gracias por la info
Ferchinix
10 Sep 08 at 4:15 pm
excelente gracias por el tutorial
leonz
16 Sep 08 at 5:51 pm
Hola, tal como dice Ferchinix, primero hay que crear al usuario, seleccionando las opciones:
Información de la cuenta
Nombre de usuario: pma
Servidor: local (esto es en mi caso)
Contraseña: Sin Contraseña
————————————–
Base de datos para el usuario
Crear base de datos con el mismo nombre y otorgue todos los privilegios.
————————————–
Privilegios globales
Marcar todos/as
————————————–
Esto es lo que yo hice y luego corrí el Script, que se encuentra en: C:\AppServ\www\phpMyAdmin\scripts
En mi caso esa es la ruta por default en la que se instaló el AppServ.
Gracias alejandro, saludos desde México
José Luis Cervantes
pepegrillo911@hotmail.com
Falcon
7 Oct 08 at 4:03 pm
Hola, segui los pasos y funciono…solo que en mi caso no aparecia el archivo config.inc.php.
Lo que hice fue copiar el config.default.php en config.inc.php y editarlo tal y como dice alejandro y funciono.
Saludos de Vnzla.
GB.
GeneX
22 Oct 08 at 3:16 pm
Hola…
Segui los pasos pasos y cambie las dos lineas de codigo..
pero en el momento que voy a ejecutar el scritps e inteto entrar a phpmyadmin no me deja y me da el siguiente error::
#1045 - Access denied for user ‘root’@'localhost’ (using password: NO)
La cuestion es que lo necesito urgente debo entregar una base de datos para una materia y la verdad ya he intentado de todo.. y me queda muy poco tiempo
Podrian por favor ayudarme se los agradeceria muchsisismo..
mi correo es loin984@gmail.com
Gracias….
Paola
8 Nov 08 at 1:03 am
Saludos…
Esta chido tu manual segui los pasos y de primero me detecto un error, y lo que hice fue cargar el otro escript que biene junto al que mencionas y esa fue mi solucion.
error: create_tables.sql
solucion: crete_tables_mysql_4_1_2+.sql
y con eso me aparecio la vista de relaciones
saludos desde zacatecas Zac.
ZEKU
11 Dic 08 at 7:52 pm
Muy bueno muchas gracias….
Gonzalo
29 Ene 09 at 4:34 pm
me pasa como a Ferchinix me habilita la vista de relaciones pero no lo de actualizar en cascada y demas alguien tiene la solucion?
segis@paintballdragons.com
Segis
23 Feb 09 at 11:46 am
Excelente informacion, muy util. Gracias
Alain
7 Abr 09 at 3:22 pm
A mi me funcionó fué importando el archivo create_tables_mysql_4_1_2+.sql.
Porque con el archivo create_tables.sql me sale un error, de resto todo bien en el tutorial.
Muchas gracias por este tutorial, me ayudó muchísimo.
Lucho
16 Abr 09 at 5:31 pm
Estimados colegas:
Me parece que en la transcripcion del archivo que agrego Alejandro falta un (;) al final del comentario donde carga la Tabla pma_designer_coords (Relación, rigurosamente hablando). Lo probe desde dentro de phpmyadmin creando a mano la Table y anduvo bien.
Alejandro, muchas gracias por tus ayudas.
Enrique
11 May 09 at 6:40 pm
hola..
gracias por el tip, me habilita la vista de relaciones pero no lo de actualizar en cascada y demas alguien tiene la solucion?
lorena
14 May 09 at 6:28 pm
tiene q hacer la db en innoDB para q todo ande bien
Juan C amar
14 Jun 09 at 10:25 pm
hola!
Gracias ante nada Alejandro tu manual esta genial. Estoy utlizando phphmyadmin en version 3.1.3.1 y se logro activar mi vista de relaciones como a Jose Luis Cervantes desde la carpeta app, en archivos sueltos copie el con.ini.php con los requisitos y tambien en un arcivo suelto copie crete_tables_mysql_4_1_2+.sql mismo que cargue en importan y asi funcionó.
un cordial saludo alejandro desde coahuila
maggie
28 Jun 09 at 6:58 am
Hola que tal,
Realice una base de datos con 5 tablas, lo tengo bien y corre a la perfección, pero ahora quiero tener una vista de relación entidad de la tabla que hice.
Para esto me percate que no tengo activada esa opción en phpmysql.
Código:
Activar la vista de relaciones en phpMyAdmin
Para activar la vista de relaciones tenemos que abrir, en primer lugar, el archivo config.inc.php. Después buscamos la línea $cfg[’Servers’][$i][’pmadb’] y la dejamos como se muestra a continuación:
$cfg[’Servers’][$i][’pmadb’] = ‘phpmyadmin’;
A continuación buscamos la línea $cfg[’Servers’][$i][’relation’] y la dejamos de la siguiente manera:
$cfg[’Servers’][$i][’relation’] = ‘pma_relation’;
Para este paso, revise este archivo el cual tuve que hacerlo desde root para poder abrirlo y modificarlo, el caso es que ya estaba justamente como lo describes. así es que seguí con el manual…
Código:
Tan sólo nos queda ejecutar un script que se encuentra en la carpeta /scripts de phpmyadmin. Ese script se llama create_tables.sql y lo podemos ejecutar de varias maneras.Una de ellas es abriendo la página principal de phpMyAdmin pulsando a continuación sobre “Importar”.
Para este paso, el archivo create_tables.sql, nunca lo encontré en esa dirección lo encontré en la siguiente ruta /usr/share/doc/phpmyadmin/scripts/create_tables.sql.gz
y viene exactamente igual, comprimido, ahora lo descomprimí y no tuve permisos para hacerlo en esa carpeta, así es que lo extraje en una carpeta de mis documentos, y seguí con el manual, lo importe al phpmysql… y sorpresa me aparece la siguiente leyenda “Wrong permissions on configuration file, should not be world writable!”
Ahora no puedo utilizar mi phpsqladmin porque me aparece la panatalla blanca con esa leyenda. trate de darle permisos al archivo para su ejecucion y me encontre conque debo de darle permisos al archivo config.inc.php y se los di asi “sudo chmod a-w config.inc.php”
y aun así me da error la ruta que hice es desde la carpeta. /etc/phpmyadmin $ sudo chmod a-w config.inc.php
entonces hice lo mismo pero con el archivo create_tables.sql pero aun asi me aparece el rollo igual….
Que puedo hacer??
De ante mano gracias,
uso linuxming
miiso
7 Ago 09 at 6:37 am
Hola, al igual que la mayoria de ustedes, yo también tengo el mismo problema. Realizo todo lo del manual pero no se habilita la opcion de RELACION. Quisiera que me ayuden con eso. He hecho de todo… Quisiera probar la forma, importando el archivo crete_tables_mysql_4_1_2+.sql pero no tengo ese archivo. Agradeceria que me envien ese archivo a mi mail. ronald_raul@hotmail.com
Ronald
26 Ago 09 at 7:43 pm
No se si ya resolviste tu problema de habilitación de la opcion de relaciones en PHPMyadmin, a mi me dio ese mismo problemilla y ademas de importar el archivo
crete_tables_mysql_4_1_2+ debes de editar en el archivo config.inc.php la siguiente línea $cfg[’Servers’][$i][’designer_coords’]=’pma_designer_coords’; si no está agregada debes agregarla, importas nuevamente el archivo crete_tables_mysql_4_1_2+ y listo.
Adri
9 Oct 09 at 6:36 pm
hola amigos he tenido los mismo problemas que ustedes desagraciadamente en el wamp5 no pude encontrar esa lineas de codigo pero en el appserv si las encontre ademas de que me marca los mismos erroes no puedo darle la opcion de cascada si alguien corrige esto seria de alluda
erick
10 Oct 09 at 12:13 am
Hay que hacer más cosas, y en parece que en el WAMP no funciona aunque hagas todo eso, aquí lo ponen:
http://www.igorgarcia.es/blog/activar-relaciones-phpmyadmin
Paco el flaco
24 Oct 09 at 11:33 am
he hecho todo y no se me muestra la vista
alexander
6 Nov 09 at 12:07 am
Hola!!! al fin nadie pudo solucionar lo de la vista en cascada de las relaciones yo he instalado muchas veces diferentes appserv y editado script y todo lo necesario pero no lo de actualizar en cascada y demas alguien tiene la solucion? me urge que me ayuden….
oliver
6 Nov 09 at 4:22 pm
excelente información, no tenia idea que se podía configurar phpadmin para tener una vista de relaciones, a mi me funciona perfectamente, probado con appserver en windows xp, saludos
Roberto
14 Dic 09 at 4:46 am
La verdad es que cante victoria antes de tiempo, el tema de la vista en cascada no me aparece,
cual sera la solucion estimado Alejandro????
Roberto
14 Dic 09 at 5:13 am
Buenas tardes!!
He realizado los pasos como estan arriba indicados pero no se muestra la vista.
Tambien me paso que toda la BD que tenia y sus relaciones la he tenido que exportar a otro ordenador porque se me estropeo donde lo tenia y ahora no puedo visualizar las relaciones creadas. Se que estan porque si intento volver a crearlas me dice ERROR que ya existen pero visualmente no veo las lineas azules que indica que existe una relacion. Tengo que activar algo para poder verlas??
Muchas gracias!!
Fiss05
15 Dic 09 at 5:22 pm
Hi, bueno amigos ya solucione lo de las relaciones en cascadas y set null etc, etc, en mi caso uso de prueba appserver y no tenia habilitado mi tabla “innodb” en phpadmyn, esto se soluciona editando my.ini y en la linea skip-innodb anteponer un # y después reiniciamos servicios,
InnoDB es una tecnología de almacenamiento de datos de fuente abierta para la base de datos MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL, si no tienes habilitado esto es imposible que interactúes con tus relaciones,
quiero comentar que yo uso EMS SQL MANAGER 2007 FOR MYSQL como administrador de mi servidr mysql local y al momento de crear la tabla en opciones en Storage engine debo de poner la opción InnoDB para trabajar con tablas que me permitan relacionar en cascada, con restricciones, etc, etc, increíblemente al hacer esto me apareció como arte de magia las ventanas “cascadas” en mi phpadmin que se comenta mas arriba
suerte amigos.
http://www.rpsystem.cl
bye
Roberto
18 Dic 09 at 6:39 pm
corrijo lo anterior, el archivo my.ini corresponde un archivo de configuración de mysql
para que aparezca las opciones de cascada, las tablas deben de ser InnoDB
bye
Roberto
20 Dic 09 at 9:46 pm
si las tablas se crean con motor ENGINE=InnoDB, por ejemplo:
CREATE TABLE `padres` (
`padre_ID` int(11) NOT NULL auto_increment,
`padreNombre` varchar(25) NOT NULL,
PRIMARY KEY (`padre_ID`)
) ENGINE=InnoDB ;
tambien aparece Vista de relaciones y no hay que configurar nada.
victoria
25 Mar 10 at 10:24 am
Hola chicos, la solucion que da nuestro amigo Alejandro Meroño, es buena, a mi me slaio un erro del pma@localhost.com al intentar cargar el script crate_table.sql…. de tal manera que en esta ruta:
C:\AppServ\www\phpMyAdmin
entoncraran en mencionado: create_table.sql
pero tambien aparece uno que dice (en mi caso por la version de mi phpmyadmin): create_tables_mysql_4_1_2+
Asi que en vez de cargar el create_table.sql, carga
en otro y ejecutalo…. asi quedara tu vista de ralaciones activada.
LO ASEGURO!!!
bendiciones a todos,
Marcos Aguilera Ely
20 May 10 at 4:05 pm