POST

MySQL en Centos 6

 

MySQL es el sistema de gestión de bases de datos relacional open source más popular del mundo; y junto a Oracle y Microsoft SQL Server, uno de las más usados para entornos de desarrollo web.

Instalación de MySQL 5.7

Desinstalo librerías MySQL 5.1 que vienen por defecto con Centos 6.
1
2
sudo yum remove mysql-libs
rpm -qa | grep mysql
Instalo repositorios oficiales
1
2
wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
sudo yum localinstall mysql57-community-release-el6-7.noarch.rpm
Instalo MySQL a través de los repositorios oficiales
1
sudo yum install mysql-community-server

Configuramos el arranque de Mysql al reiniciar el servidor

Listado de servicios de arranque
1
chkconfig --list
Vemos si el servicio ‘mysqld’ está activo
1
chkconfig --list mysqld
Activamos el sevicio ‘mysqld’ para que se active al reiniciar (on reboot)
1
sudo chkconfig mysqld on
Arrancamos la base de datos
1
sudo service mysqld start

Configuraciones recomendadas

Seguiremos las configuraciones recomendadas por:
http://www.tocker.ca/2013/09/10/improving-mysqls-default-configuration.html

Editamos el fichero de configuración /etc/my.cnf
1
sudo vi /etc/my.cnf
Añadimos o modificamos el siguiente contenido:
1innodb_buffer_pool_size = 1GB
2innodb_log_file_size = 256M
3character-set-server=utf8mb4
4collation-server=utf8mb4_general_ci

Establecemos contraseña de root

Paramos el demonio y entramos en modo seguro
1
2
3
sudo service mysqld stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
Establecemos contraseña en la consola ´mysql´
1
2
3
use mysql;
UPDATE user set authentication_string=password('laquesea') where user='root';
flush privileges;
Re-arrancamos mysqld
1
2
sudo service mysqld stop;
sudo service mysqld start;
Accedemos via root con nuestra nueva password
1
mysql -u root -p

ERROR 1820 (HY000) y ERROR 1819 (HY000)

Si quiero realizar cualquier acción desde la consola, MySQL me admiverte de que debo resetear la password con el siguiente mensaje de error

1ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
Trato de modificar la passoword:
1ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Y me aparece este error:

1ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Para que me deje cambiar la contraseña añadimos la siguiente linea a /etc/my.cnf
1validate_password_policy=LOW
Paramos y arrancamos el servicio
1
2
sudo service mysqld stop;
sudo service mysqld start;

Acceso remoto

Desde la consola mysql habilitamos acceso remoto para root
1
2
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'ponercontraseña';
FLUSH PRIVILEGES;

Usuarios y permisos

Creamos cuentas de usuario (desde consola ‘mysql’)
1
CREATE USER nombre_usuario IDENTIFIED BY 'passoword_usuario';
Otorgarmos permisos (desde consola ‘mysql’)
1
2
GRANT ALL PRIVILEGES ON nombre_bbdd.* TO 'nombre_usuario'@'%' WITH GRANT OPTION;
SHOW GRANTS FOR nombre_usuario;
Quitamos permisos (desde consola ‘mysql’)
1
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'nombre_usuario'@'%';