Tag Archives: mysql

Transactions with MySQL.

If you want to use transactions with MySQL, you will have to use InnoDB engine, because the default engine on MySQL 5.1 (MyISAM) does not support transactions. Otherwise, if you use MySQL 5.5 you do not have to worry about it, because default engine is InnoDB.

A transaction is a set of SQL instructions which are run as a unit and can be cancelled if it is required.There are confirm and cancel operations

Transactional systems are characterized by their features:

  • Atomicity: Transaction’s instructions form a logic unit.

  • Coherence: Database must coherent before and after transaction. Can’t affect negatively.

  • Isolation: Transactions are not affected among them

  • Durability: If the transaction was executed succesfully, changes will be stored permanently.

    To start a transaction you can use BEGIN or START TRANSACTION

    To create a savepoint use SAVEPOINT savepointname

    And for rollback use whether ROLLBACK (to return to the BEGIN point) or ROLLBACK TO savepointname (to return another specific point)

    Example of use:

    Example of transactions use with MySQL
    Example of transactions use with MySQL

How to install MySQL 5.1 on Ubuntu

 

# apt-get install mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server-5.1 mysql-server-core-5.1 mysql-admin mysql-gui-tools-common mysql-query-browser

With this packages we install mysql client, mysql server and some administration tools.

Packages to install

Packages to install

Later, we will be asked to set up a root password:

Asking for root password

Asking for root password

Be sure to remember that password.

Once it is installed we can run MySQL Administrator to manage our recently installed server.

MySQL Administrator Connection

MySQL Administrator Connection

It’s highly recommended to create other user to work

Creating a new user

Creating a new user

With MySQL Administrator you also can manage backups or check server’s health for example.

And finally, with MySQL Query Browser you can que to your server; create new databases, insert values, sql queries, etc.

Creating a new database with Query Browser

Creating a new database with Query Browser

 

Cambiar la contraseña de un usuario en MySQL.

Para cambiar la contraseña de root, podemos hacer:

# mysqladmin -u root -p’contraseñaantigua’ password ‘nuevacontraseña’

También podemos cambiar con una sentencia SQL:

$ mysql -u root -p

mysql> use mysql;

mysql>UPDATE user SET password=PASSWORD(“nuevacontraseña” ) WHERE user=’adrian’;

flush privileges;

Utilizamos la base de datos mysql, y actualizamos el usuario que queramos. Después el comando flush privileges sirve para recargar los privilegios.

Cómo crear un usuario en MySQL.

Cuando trabajamos con bases de datos para algún cliente, o incluso trabajando desde PHP, necesitamos crear un usuario para la base de datos que vayamos a utilizar.

Primero tenemos que loguearnos como root:

$ mysql -u root -p

Creamos una base de datos nueva (si no la tenemos ya)

mysql> CREATE DATABASE prueba;

Ahora creamos el usuario, y le asignamos todos los permisos sólo a la base de datos que hemos creado, no podrá acceder a ninguna otra

mysql> GRANT ALL ON prueba.* TO usuarioprueba@localhost IDENTIFIED BY ‘supassword’;

Con eso indicamos que el usuario ‘usuarioprueba’ podrá acceder con la contraseña ‘supassword’ únicamente a la base de datos llamada prueba.

Creación de un usuario en MySQL. Click para aumentar

Drizzle. Fork de MySQL

Como bien indica el título Drizzle es un fork de MySQL, concretamente de la versión 6.0.

Desde entonces ha habido muchos cambios, como los siguientes:

Uso

  • No hay un servidor embebido. El servidor Drizzle no se puede cargar como librería compartida
  • Drizzle está optimizado para entornos concurrentes masivos
  • Diseñado para sistemas POSIX modernos
  • Windows, HP-UX e IRIX no son soportados
  • Drizzle no utiliza timezones. Todo es UTC

Instalación

  • No hay scripts/mysql_install_db o similar. Drizzle se basa en una instalación conocida como “just works” (simplemente funciona)
  • Drizzle puede escuchar en el puerto Drizzle (4427) y/o en el puerto MySQL (3306) y entender los respectivos protocolos

Procedimientos Almacenados

Drizzle actualmente no tiene ningún plugin que implemente procedimientos almacenados. La implementación en MySQL no era óptima

Comandos eliminados

  • ALTER TABLE UPGRADE
  • REPAIR TABLE
  • CREATE FUNCTION
  • CONVERT
  • SET NAMES
  • Borrado y actualizado multi-tabla

Funciones eliminadas

  • crypt()
  • bit_length()
  • bit_count()

Palabras clave eliminadas

  • CIPHER
  • CLIENTE
  • CODE
  • CONTRIBUTORS
  • CPU
  • DEFINER
  • DES_KEY_FILE
  • ENGINES
  • EVERY
  • IO
  • IPC
  • ISSUER

Objetos eliminados

  • No hay requerimiento de un schema mysql
  • No hay SET datatype, hay que usar ENUM
  • No hay comando SET NAMES, UTF-8 por defecto
  • No hay CHARACTER o CHARACTER SET, todo está por defecto en UTF-8
  • No hay TIME, DATETIME o INT
  • No hay TINYINT, SMALLINT o MEDIUMINT. Las operaciones de enteros han sido optimizadas para 32 y 64 bits
  • No hay TINYBLOB, MEDIUMBLOB o LONGBLOB. Hay un BLOB optimizado
  • No hay TINYTEXT, MEDIUMTEXT o LONGTEXT. Usar TEXT o BLOB
  • No hay UNSIGNED
  • No hay tipos de datos espaciales (GEOMETRY, POINT, LINESTRING, POLYGON)

 

Hay bastantes más cambios, pero con estos nos hacemos una idea de más o menos lo que ha cambiado en este nuevo fork que acaba de publicar su primera versión estable.

 

Podéis ver la lista de cambios completos aquí (inglés): Drizzle differences