anotaciones que no quiero recordar, ni olvidar

me

MySQL

Volar con tmpfs de MySQL en RAM, y como verificar si funciona, y si no arreglarlo: apparmor

Ratio: 5 / 5

Iniciar activoIniciar activoIniciar activoIniciar activoIniciar activo

Bueno, hay muchos tutoriales de como hacer la primera parte, pero lo que suele fallar es la segunda y la gente ni lo sabe. Así que si ya has hecho esto primero, ves a la segunda parte.

1ª Parte:
Crea una carpeta para montarla en RAM y dale permisos de MySQL:

Mostrar/Ocultar código bash

Ver código
mkdir -m 0770 /var/tmp/mysql
chown mysql:mysql /var/tmp/mysql

Haz que se monte en ram con cada reinicio o mount -a, entrando en:

Mostrar/Ocultar código bash

Ver código
vim /etc/fstab

y poniendo porejemplo 4GB de ram (ojo con no pasarte ni quedarte corto):

Mostrar/Ocultar código bash

Ver código
tmpfs   /var/tmp/mysql  tmpfs   rw,uid=102,gid=105,size=4G,nr_inodes=10k,mode=0700      0       0

para la línea de arriba, si no sabes si tu usuario y grupo de mysql son 102 y 105, míralo con esto:

Mostrar/Ocultar código bash

Ver código
id mysql

Indica en la configuración mysql la ruta:

Mostrar/Ocultar código bash

Ver código
vim /etc/mysql/my.cnf

y pon dentro (si no está ya):

Mostrar/Ocultar código bash

Ver código
tmpdir=/var/tmp/mysql/

Ya puedes :

Mostrar/Ocultar código bash

Ver código
mount -a
 
 
service mysql restart

 

2ª Parte:

Comprueba si se escriben archivos en esa carpeta, en vivo, con este comando (desaparecen pronto):

Mostrar/Ocultar código bash

Ver código
watch --interval=1 "ls -laht /var/tmp/mysql"

Si no es así, permite en apparmor que mysql pueda escribir con:

Mostrar/Ocultar código bash

Ver código
ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/usr.sbin.mysqld
service apparmor restart

Compruébalo de nuevo y fin.

Proteger phpMyAdmin restringiendo el acceso a sólo una IP

Ratio: 5 / 5

Iniciar activoIniciar activoIniciar activoIniciar activoIniciar activo

En las nuevas versiones de phpMyAdmin, en el config.inc.php existe posibilidad de hacer esto (está en el mismo direcctorio, sobre el que vamos a trabajar), pero no considero oportuno tocar el config si no revisáis cambios en cada actualización. Vamos a crear un htaccess que no se sobreescribe pro que no existía.

Mostrar/Ocultar código bash

Ver código
vim /usr/share/phpmyadmin/.htaccess

y dentro vamos poner una simple pero eficaz regla de acceso:

Mostrar/Ocultar código bash

Ver código
order deny,allow
deny from all
allow from 111.222.333.444

Lo efectivo si es simple, mucho mejor.

En algunso casos, las directivas de apache impiden que htaccess funcione en estos directorios, si no te funciona haz esto: AllowOverride Apache

Copiar y restaurar una base de datos, backup con mysqldump

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Copias todas las bases de datos del servidor (ojo con esto, con usarlo como root y con restaurar luego en otro servidor tablas del otro sistema):
Mostrar/Ocultar código bash

Ver código
mysqldump --user=root --password=contraseña -A > /ruta/dump_completo.sql

Copiar una base de datos:
Mostrar/Ocultar código bash

Ver código
mysqldump --user=root --password=contraseña nombreDE1baseDEdatos > /ruta/dump_basedatos.sql


Restaurar los datos:
Mostrar/Ocultar código bash
Ver código
mysql --user=root --password=contraseña --database=nombreBBDDsiProcede < /ruta/dump_basedatos.sql
(OJO QUE SI DENTRO DEL FICHERO PONE USE xxx O CURRENT DATABASE xxx O SIMILAR, VA A USAR LO QUE EL FICHERO LE DIGA Y NO LA BASE DE DATOS QUE INDIQUEMOS)

Cambiar contraseña root de MySQL

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Pare mysqld y reinícielo con la opción --skip-grant-tables --user=root

Mostrar/Ocultar código bash

Ver código
/etc/init.d/mysql stop
/etc/init.d/mysql start --skip-grant-tables --user=root

Conecte al servidor mysqld con este comando:
Mostrar/Ocultar código bash
Ver código
mysql -u root -pPASSWORD

Ejecute las siguientes sentencias en el cliente mysql:
Mostrar/Ocultar código mysql
Ver código
mysql> UPDATE mysql.user SET Password=PASSWORD('nuevacontraseña') WHERE User='root';
mysql> FLUSH PRIVILEGES;

Reemplace “nuevacontraseña” con la contraseña de root real que quiere utilizar.

Consola linux: Eliminar, o resetear la cache de mysql sin reiniciar el servidor

Ratio: 5 / 5

Iniciar activoIniciar activoIniciar activoIniciar activoIniciar activo

Y además lo vamos a hacer sin teclear la contraseña:

Resetear:

Mostrar/Ocultar código bash

Ver código
mysql -u admin -p`cat /etc/psa/.psa.shadow` -e 'RESET QUERY CACHE;'

Defragmentar:

Mostrar/Ocultar código bash

Ver código
mysql -u admin -p`cat /etc/psa/.psa.shadow` -e 'FLUSH QUERY CACHE;'