mysql - quitar - cómo eliminar la base de datos
optimizar consultas lentas mysql (12)
¿Tiene permiso de escritura en ese directorio (y el padre)? es posible que deba hacer recursivamente el directorio de escritura (pestaña de seguridad en windows o chmod en nix) y eliminar cualquier archivo que no sea de db como "Thumbs.db"
utilicé el siguiente sytanx
drop database filmo;
y obtuve el siguiente error:
ERROR 1010 (HY000): Error dropping database (can''t rmdir ''./filmo/'', errno: 17)
algunas ideas..
1) rm -rf /var/lib/mysql/data/***
mantener el directorio de datos, rm el contenido de los datos /
2) usar
mysql -uxxx -pyyy
$ drop database data;
entonces sería correcto recrear la base de datos de nuevo . Esperemos que sea de ayuda, Atención, el directorio de eliminación directa de datos es inútil , ya sea que reinicie mysqld o no.
Aquí hay una manera de simular su error.
1.crear un directorio en el directorio de datos MySQL
mkdir /data/mysql/data/filmo
2. compruebe el último artículo
[root@linux]# ls -ltrh /data/mysql/data/
总用量 173M
-rw-rw---- 1 mysql mysql 48M 4月 17 11:00 ib_logfile1
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 performance_schema
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 mysql
-rw-rw---- 1 mysql mysql 56 4月 18 06:01 auto.cnf
drwxr-xr-x 2 root root 4.0K 4月 18 07:25 backup
-rw-rw---- 1 mysql mysql 19 4月 23 07:29 mysql-bin.index
-rw-rw---- 1 mysql mysql 5 4月 23 07:29 oldboylinux.pid
-rw-rw---- 1 mysql mysql 19K 4月 23 07:29 error.log
-rw-rw---- 1 mysql mysql 76M 4月 23 09:56 ibdata1
-rw-rw---- 1 mysql mysql 48M 4月 23 09:56 ib_logfile0
-rw-rw---- 1 mysql mysql 5.9K 4月 23 10:21 mysql-bin.000001
drwxr-xr-x 2 root root 4.0K 4月 23 10:36 filmo
3.crear un archivo de volcado en ella
[root@linux]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql
4.MySQL creerá que filmo es una base de datos
[root@linux]# mysql -uroot -p123456 -e"show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| backup |
| filmo |
| mysql |
| performance_schema |
+--------------------+
5.Cuando descarto esta "base de datos", aquí está su error
[root@linux]# mysql -uroot -p123456 -e"drop database filmo;"
ERROR 1010 (HY000) at line 1: Error dropping database (can''t rmdir ''./filmo/'', errno: 17)
Ese error suele aparecer cuando tiene un TABLESPACE incorrecto en el archivo ibdata1 (que es para el motor innodb). El motor innodb almacena algunas configuraciones dentro del archivo ibdata1.
Si recientemente ha copiado / movido sus archivos a otro servidor o ha intentado restaurarlos, entonces debería mover el archivo ibdata1 y eliminar el db. ¿Supongo que está teniendo problemas como la tabla no existe y ahora está eliminando db? Si es así, detenga el servicio mysql, luego elimine los archivos y luego vuelva a crear la base de datos, eso le ayudará. Más aquí, esto podría ayudarle [ Error al eliminar la base de datos (No se puede ejecutar rmdir ''.test /', errno: 17)
Esto es lo que hago en Mac OS X Mavericks:
- Detener el servicio MySQL
- Elimine el directorio en
/usr/local/mysql/data
He cambiado los permisos en la carpeta mysql (servidor de Windows c:/xampp/mysql
) y está funcionando ahora, he creado y eliminado bases de datos sin ningún error.
No estoy seguro de dónde obtuve esta respuesta de (disculpas) pero, aunque similar al anterior, tiene la información adicional de cómo encontrar el directorio de datos mysql:
mysql -e "selecciona @@ datadir"
Esto, supongo, es genérico y devuelve la ruta a mysql / data. Si te mueves a ese directorio (comando unix / linux / macOS):
cd path_to_ mysql / data
Encontrará la base de datos que desea eliminar, que en nix se puede hacer por:
sudo rm -rf DB_NAME
En MacOS X (10.9.5) no tuve que detener MySQL, pero esto puede diferir en otras plataformas.
Significa que hay archivos en ese directorio que no están relacionados con MySQL. Otro tema, aunque lo dudo, son los permisos insuficientes. Puede eliminar ese directorio del sistema de archivos.
Tiene el mismo error Esto lo arreglé para mí en Ubuntu 10.04:
stop mysql
rm -rf /var/lib/mysql/XXXXX
start mysql
Donde XXXXX es el nombre de la base de datos ofensiva.
Tuve este problema y parece ser sobre los permisos de usuario de mysql. intente hacerlo por usuario root si funcionó, use este comando como permiso de root a grand drop para su usuario:
grant drop
execute on *.* to ''your-user-name''@''user-ip'';
sudo rm -rf / var / lib / mysql / db_production
donde db_production es el nombre de la base de datos
Recuerda usar "sudo".
drop database <database_name>;