Blog

MySQL

MySQL (10)

Lunes, 12 Abril 2021 19:53

Duplicando una tabla en Mysql

Written by

Hay ocasiones en las que necesitamos hacer pruebas sobre una tabla que se encuentra en producción.

Una forma rápida de hacer esa prueba sin afectar los datos, es hacer una copia de la tabla.

En realidad, si tenemos tiempo siempre será más cómodo llevar esos datos a un entorno de staging para trabajar más tranquilos; vamos a pensar que no tenemos tiempo… y mucho menos un entorno de staging.

Si queremos duplicar nuestra tabla, sólo debemos ejecutar la siguiente instrucción:

CREATE TABLE tabla_nueva LIKE tabla_original;

De ésta forma. obtenemos una tabla idéntica en cuanto a estructura.

Si necesitamos los datos de esa tabla en nuestra copia, insertamos todos los registros de la original de la siguiente forma:

INSERT INTO tabla_nueva SELECT * FROM tabla_original;

Al haber una correspondencia exacta en cuanto a las columnas y tipos de datos, los registros son insertados sin mayor problema.

Hay una segunda forma de obtener el mismo resultado que las dos consultas previas. Podemos, con una sola instrucción, lograr la misma tabla. En este caso, debemos ejecutar:

CREATE TABLE tabla_nueva SELECT * FROM tabla_original;

Con esto, dos formas muy rápidas de duplicar una tabla y, si se quiere, sus datos.

Jueves, 30 Mayo 2019 21:40

Habilitar acceso remoto a MYSQL desde Plesk

Written by

El artículo está en inglés, pero es de fácil comprensión. 

MySQL is in the view of many people one of the most common database management systems in use on a day to day basis. You can run MySQL on just about any platform including Microsoft Windows and server UNIX varieties, like Linux, with many platforms also supporting MySQL remote access.

 

What is MySQL?

It’s often the engine that holds the data for  programs, including online publishing. Backed by Oracle, MySQL is an open source (everyone has access to the code) database that fits into the RDBMS (Relational database management system) paradigm.

 

MySQL has shifted hands a few times. It was first designed and developed by a company located in Sweden called MySQL AB, but was then bought out by Sun Microsystems in 2018. Though MySQL is owned by a commercial enterprise, developers may use it under the GNU GPL (or General Public License). However, enterprises must get a specific license from Oracle if they want to use MySQL in their applications.

 

How MySQL fits into Plesk Onyx

Plesk Onyx is database-driven and needs a database server to facilitate the various database services that Plesk components use. For example, there are databases involved in hosting Plesk Webmail. Each customer website will also use a database to store content while APS application databases are also required.

 

Every Plesk installation ships with a number of database management tools and Plesk supports a range of databases including MySQL. Plesk can interact with database servers located on the machine running Plesk. But Plesk can also link to a database server on a remote machine. You can also facilitate remote MySQL access via Plesk, should you have an external application that requires access to your MySQL databases.

 

Plesk MySQL Remote Access

In many instances, a user needs to facilitate a connection to a database from a third-party software tool that isn’t running on the same server as the database. You can enable Plesk MySQL remote access so that remote servers and hosts can access the MySQL databases in your Plesk account.

 

Activating MySQL Remote Access Under Plesk

For security reasons, Plesk doesn’t automatically make it possible to get remote MySQL access. We recommend that you create a new, separate user to use for remote MySQL connections. Nonetheless, if you prefer to do so, you can use the admin user account to facilitate remote MySQL access.

 

To enable MySQL remote access you must connect to your server with SSH/RDP and carefully follow the steps we list below:

 

Login to Plesk and make sure the option Allow remote connections from any host is enabled at Tools & Settings > Database Servers > Settings.

Connect to a Plesk server via SSH/RDP and open the MySQL configuration file in any text editor. Location of this file is:

For Linux:

  • for CentOS/RHEL-based distributions:/etc/my.cnf
  • for Debian/Ubuntu-based distributions:/etc/mysql/my.cnf

For Windows:

  • %plesk_dir%Databases\MySQL\my.ini

Change bind-address parameter to:

bind-address = 0.0.0.0

Note: 0.0.0.0 means every IP address on the server. If it is required to bind to specific IP address, specify this particular IP instead of 0.0.0.0

Also, make sure that skip-networking parameter is not defined.

After that, restart MySQL server:

For Linux:

  • for MariaDB database server:# service mariadb restart
  • for MySQL database server:# service mysql restart.

For Windows:

  • Go to Plesk > Tools & Settings > Services Management > Restart MySQL Server

 

Martes, 31 Julio 2018 23:17

Enlaces útiles para reparar errores de MYSQL

Written by

https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

https://www.digitalocean.com/community/tutorials/how-to-import-and-export-databases-and-reset-a-root-password-in-mysql

https://www.digitalocean.com/community/questions/mysql-can-t-be-started-start-job-failed-to-start-error

https://dev.mysql.com/doc/refman/8.0/en/mysqladmin.html

https://apashley.co.uk/snippets/36/find-plesk-email-passwords.html

https://askubuntu.com/questions/392438/mysql-job-failed-to-start

https://serverfault.com/questions/592793/mysql-crashed-and-wont-start-up

 

XTRABACKUP

https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/apt_repo.html

https://www.percona.com/doc/percona-xtrabackup/LATEST/xtrabackup_bin/creating_a_backup.html

https://gist.github.com/bengarrett/9cfac5e4d736fa92bf66

 

MUY MUY UTIL

https://support.plesk.com/hc/en-us/articles/213931725-Dump-of-the-MySQL-database-hosted-on-the-Plesk-server-fails-mysqldump-table-doesn-t-exist-when-using-LOCK-TABLES

Viernes, 25 Mayo 2018 20:42

Codificación de acentos en MySQL

Written by

Si en alguna ocasión observas en tu web que los acentos, eñes y otros caracteres especiales procedentes de MySQL, se ven mal, o con símbolos extraños, se debe a que el juego de caracteres que estas usando no es el correcto. Nosotros usamos UTF-8 siempre que podemos.

Te proporcionamos una solución a este problema que evitará realizar conversiones en los campos de la base de datos.

Después de realizar la conexión con la base de datos, escribe la siguiente consulta en tu script PHP:

mysql_query(“SET NAMES ‘utf8’”);

Esta consulta debe hacerse antes de cualquier otra que devuelva datos de las tablas. Con esto resolverás el problema de acentos y eñes.

Significa que al MySQL están llegando demasiadas peticiones, más de las que puede aceptar, más de las que puede poner en cola o en espera.

Para solucionarlo, debemos aumentar el límite máximo de peticiones (conexiones) que MySQL admite.

Les daré dos opciones para solucionar este problema:

1. Editamos el archivo /etc/mysql/my.cfg :

vi /etc/mysql/my.cfg

En él ponemos lo siguiente bajo donde dice [mysql]:

max_connections = 500

max_user_connections = 500

Esto aumentará el número máximo de conexiones de 100 (que es el por defecto) a 500.

Jueves, 28 Septiembre 2017 21:01

Buscar usuario dentro de la tabla de usuarios MYSQL

Written by

Comando:

select user, host, password, plugin, authentication_string from mysql.user where user='****';

Crear un usuario nuevo desde la consola de MySQL:

CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'tu_contrasena';

 

Proporcionarle el acceso requerido al usuario con la información que requiere.

GRANT ALL PRIVILEGES ON * . * TO 'nombre_usuario'@'localhost';

 

Al final siempre hay que refrescar los privilegios:

Flush privilegies;

Jueves, 28 Septiembre 2017 14:38

Actualizar max_connections usando la consola de MYSQL

Written by

Para ver el límite de conexiones de MySQL, se puede utilizar la siguiente orden

show variables like "max_connections";

Bien en la consola de MYSQL, o bien a tráves de la ventana SQL de PHPMYADMIN

 

Para cambiar el límite de conexiones, se puede utilizar la siguiente orden

set global max_connections = 200;

 

Jueves, 28 Septiembre 2017 07:58

¿Cómo resetear la password de ROOT en MYSQL o MariaDB

Written by

¿Cómo resetear la password de ROOT en MYSQL o MariaDB

En caso de pérdida del acceso root en MYSQL, puedes seguir el siguiente procedimiento para recuperar la clave root. Este tutorial vale para versiones anteriores o nuevas de MYSQL o MariaDB

Requisito

Tener acceso de superusuario al servidor 

Desde el editor de sentencias SQL, tienes que introducir las siguientes sentencias SQL para cambiar masivamente los precios. He aquí ejemplos para diferentes tipos de cambios 

 

Incrementar un 20%

UPDATE ps_product_shop SET price = price*1.20
UPDATE ps_product SET price = price*1.20

Descontar 15 céntimos

 

UPDATE ps_product_shop SET price = price-.15
UPDATE ps_product SET price = price-.15

Incrementar 50 céntimos

UPDATE ps_product_shop SET price = price+0.50
UPDATE ps_product SET price = price+0.50

Descontar 10%

UPDATE ps_product_shop SET price = price / 1.1
UPDATE ps_product SET price = price / 1.1