La instalacin de MySQL en OpenSUSE es muy sencilla, incluso es muy posible que venga preinstalado en muchas instalaciones. De lo contrario, abre YaST, y en la opcin de administracin de software, busca los paquetes escribiendo "mysql" en el campo de bsqueda. Te debern aparecer todos los necesarios (ten en cuenta que la versin que se instalar es MariaDB, una ramificacin del original MySQL, pero de los mismos autores).
Muy posiblemente tambin te aparecern otros paquetes como el mdulo de PHP para MySQL o phpMyAdmin, para gestionar tu base de datos desde el navegador. Si ests interesado, instalalos tambin.
Pero no es la instalacin lo que quiero comentar ahora, si no la configuracin inicial y como asegurar la instalacin.
El archivo de configuracin se aloja en
/etc/my.cnf
y ah podremos, entre otras cosas, cambiar la ubicacin donde se guardarn las tablas de mysql o los puertos de escucha. Est todo muy bien documentado, as que leyendo se podr sacar mucha informacin.
datadir = /var/lib/mysql
Para hacer nuestra instalacin ms segura, se puede ejecutar el script
mysql_secure_instalation
que nos guiar a travs de una serie de preguntas para crear una password para el usuario root (por defecto no hay contrasea), borrar las tablas de prueba, eliminar a los usuarios annimos o denegar el acceso remoto para la administracin, todo ello cosas recomendables.
Blog tecnológico, de programación, informática e internet todo en un popurri de consejos y recomendaciones que me van sucediendo en el día a día
Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
martes, 24 de septiembre de 2013
jueves, 8 de septiembre de 2011
Copiar un conjunto de tablas dentro de la misma base de datos
Hoy quería hacer una copia de un blog de wordpress de manera que pudiera tener un sitio de pruebas en el que jugar sin miedo a cargarme algo del blog de verdad.
Uno de los pasos que hay que realizar es una copia de la base de datos utlizada por el blog. En mi caso no tengo más bases de datos así que la opción ha sido copiar las tablas con un nombre diferente a la misma base de datos.
Para mi sorpresa, buscando por internet, no he encontrado una manera rápida o semi-automática de realizar esta copia. He encontrado muchos posts de como copiar una tabla (pero solo una, no un conjunto de ellas) pero no me apetecía ejecutar una por una para cada tabla.
Comentar que uso MySQL por si alguien lo dudaba.
La solución para copiar las tablas a la misma base de datos pero con nombre distinto ha sido:
Uno de los pasos que hay que realizar es una copia de la base de datos utlizada por el blog. En mi caso no tengo más bases de datos así que la opción ha sido copiar las tablas con un nombre diferente a la misma base de datos.
Para mi sorpresa, buscando por internet, no he encontrado una manera rápida o semi-automática de realizar esta copia. He encontrado muchos posts de como copiar una tabla (pero solo una, no un conjunto de ellas) pero no me apetecía ejecutar una por una para cada tabla.
Comentar que uso MySQL por si alguien lo dudaba.
La solución para copiar las tablas a la misma base de datos pero con nombre distinto ha sido:
- Acceder al gestor de la base de datos a traves de phpMyAdmin
- Seleccionar todas las tablas que quería copiar, marcándolas con el correspondiente "checkbox"
- Abajo de todo el listado de tablas, hay un desplegable para realizar acciones en bloque, ahí he elegido Exportar
- Descargamos el archivo de exportación a nuestro ordenador y lo abrimos con un editor de texto. Buscamos el prefijo que tengan dichas tablas y lo sustituimos por un nuevo prefijo.
Por ejemplo, si se llamaban todas wordpress_nombreDeTabla, buscamos wordpress_ y lo sustituimos por otroprefijo_ - En caso de que no haya un prefijo común a todas las tablas, siempre tendremos un patrón en todas ellas, por ejemplo "CREATE TABLE IF NOT EXIST nombreDeTabla". En este caso buscamos la cadena "CREATE TABLE IF NOT EXIST " (con el espacio del final incluido) y lo reemplazamos por "CREATE TABLE IF NOT EXIST otroprefijo_" de manera que todas las tablas pasarán a tener otroprefijo_ delante suyo.
- Guardamos el fichero
- Volvemos a phpMyAdmin y en el menú superior elegimos "Importar"
- Elegimos el archivo editado, y lo importamos. Todas las tablas deberán duplicarse con su nuevo nombre.
Publicado por
Spuas
en
8:39
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Etiquetas:
MySQL
viernes, 28 de enero de 2011
Insertar varias filas en MySQL con Java
Ayer me preguntaban como se podían meter varias filas directamente en una base de datos MySQL a través de Java. A mi, lo único que se me ocurrió es preparar un string con tantos valores como filas queramos meter:
y así tantas veces como filas queramos meter. Todo esto se podría automatizar con un método que devolviera ese string automáticamente pasándole el número de filas que quisiéramos (escrito rápido y sin mucha comprobación):
Pero hoy, la misma persona que me preguntó me informa que todo esto ya está preparado en Java y que se puede hacer de manera mucho más sencilla... así que aquí dejo una mejor solución (lo de antes no eran más que indagaciones):
String s = "INSERT INTO table (aa, bb ,cc) values (?,?,?), (?,?,?) , (?,?,?) , (?,?,?)...."
y así tantas veces como filas queramos meter. Todo esto se podría automatizar con un método que devolviera ese string automáticamente pasándole el número de filas que quisiéramos (escrito rápido y sin mucha comprobación):
public String createInsert(int rows){
String s = "INSERT INTO table (aa, bb, cc) values ";
for(int i = 0; i < rows; i++){
s += "(?,?,?),"
}
//Aquí habría que quitar la última coma
}
Pero hoy, la misma persona que me preguntó me informa que todo esto ya está preparado en Java y que se puede hacer de manera mucho más sencilla... así que aquí dejo una mejor solución (lo de antes no eran más que indagaciones):
String s = "INSERT INTO table (aa, bb ,cc) values (?,?,?)"
PreparedStatement st = connection.prepareStatement(s);
int rows = 20;
for(int i = 0; i < rows; i++){ st.setString("a string") //or whatever value: int, date, null
st.setString("a string") //or whatever value: int, date, null
st.setString("a string") //or whatever value: int, date, null
st.addBatch(); //añadir una fila
}
st.executeBatch();
lunes, 20 de diciembre de 2010
Deshabilitar Foreign Key Checks en MySQL
En algunas ocasiones las foreign keys de nuestras tablas nos pueden dar mucho la lata cuando estamos en un entorno de desarrollo, borrando y añadiendo filas constantemente, restaurando tablas... ya que nos saltará error al incumplirse las restricciones que estos índices imponen.
Bien, pues en MySQL es fácil deshabilitar este chequeo y que no nos de error, para ello:
Bien, pues en MySQL es fácil deshabilitar este chequeo y que no nos de error, para ello:
set foreign_key_checks = 0; Realizamos nuestras acciones
set foreign_key_checks = 1;
Publicado por
Spuas
en
12:20
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Etiquetas:
foreign key,
MySQL
viernes, 12 de noviembre de 2010
Ver y matar los procesos de MySQL
¿Se te queda la base de datos colgada durante mucho tiempo sin dar respuesta?
¿Se consume la CPU de manera anormal y todo por culpa de mysql?
Pues bien, si quieres ver que es lo que está manteniendo ocupado al motor de bases de datos lo puedes hacer de la siguiente manera:
De esta manera veremos todos los procesos que se están ejecutando en la base de datos y seguramente habrá alguna sentencia que no termina de ejecutarse correctamente.
Para matar el proceso que te deja sin recursos el ordenador, desde dentro de MySQL teclea
donde X es el número de proceso (primera columna de show full processlist)
¿Se consume la CPU de manera anormal y todo por culpa de mysql?
Pues bien, si quieres ver que es lo que está manteniendo ocupado al motor de bases de datos lo puedes hacer de la siguiente manera:
mysql -uroot -p
(ENTER YOUR PASSWORD)show full processlist
De esta manera veremos todos los procesos que se están ejecutando en la base de datos y seguramente habrá alguna sentencia que no termina de ejecutarse correctamente.
Para matar el proceso que te deja sin recursos el ordenador, desde dentro de MySQL teclea
kill X
donde X es el número de proceso (primera columna de show full processlist)
Publicado por
Spuas
en
7:14
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Etiquetas:
MySQL
miércoles, 10 de noviembre de 2010
Incrementar campo de MySQL con un único update
Si se quiere actualizar un campo de una tabla de MySQL sin tener que hacer un select antes, se puede hacer con :
UPDATE table SET table.field = table.field + 1 where id = 'id';
UPDATE table SET table.field = table.field + 1 where id = 'id';
Suscribirse a:
Entradas (Atom)
