ERROR 1006(HY000) No se puede crear la base de datos(error: 13) MySQL 5.6.12
mysql-5.6 (11)
Verifique los permisos de su directorio de datos mysql.
El directorio de datos está configurado en ''/etc/my.conf'' por defecto.
O usemysqladmin -uroot -p variables | grep datadir
mysqladmin -uroot -p variables | grep datadir
para encontrar el directorio.
Puede ser/var/lib/mysql/
por defecto, y asegura que el usuario propietario y el grupo sean mysql.chown -R mysql:mysql /usr/local/mysql/data
Si no se ha resuelto en el paso 1. Puede ser debido a que
SELinux
en su camino, intente apagarlo .- Probar si SELinux se está ejecutando.
selinuxenabled && echo enabled || echo disabled
- Desactivación temporal de SELinux.
echo 0 > /selinux/enforce
- Completamente apagando SELinux. Cambie config
SELINUX=disabled
, y reinicie.
En diferentes sistemas operativos, el directorio de configuración de
SELinux
puede ser diferente.- Probar si SELinux se está ejecutando.
Estoy enfrentando un problema al crear la base de datos y da como resultado un error siguiente.
mysql> show grants for ''admin''@''%'';
+---------------------------------------------------------------------------------------------------------------------------------+
| Grants for admin@% |
+---------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ''admin''@''%'' IDENTIFIED BY PASSWORD ''*4ACFE3202A5FF5CF467898FC58AAB1D615029441'' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> create database abc;
ERROR 1006 (HY000): Can''t create database ''abc'' (errno: 13)
Aquí está mi tabla de usuarios.
mysql> select host, user from mysql.user;
+-------------+-------+
| host | user |
+-------------+-------+
| % | admin |
| 127.0.0.1 | root |
| ::1 | root |
| IVM-MMC-DGW | root |
| localhost | admin |
| localhost | root |
+-------------+-------+
6 rows in set (0.00 sec)
mysql> show grants;
+-----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for admin@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ''admin''@''localhost'' IDENTIFIED BY PASSWORD ''*4ACFE3202A5FF5CF467898FC58AAB1D615029441'' WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Puedo crear y eliminar tablas en la base de datos existente.
El directorio de datos ya tiene privilegios de mysql: mysql y también el usuario registrado tiene privilegios para crear la nueva base de datos.
¿Qué configuración falta aquí?
Al ejecutar WAMP y yo tuvimos el mismo problema, opté por la parada y el inicio tradicionales de todos los servicios, y eso fue lo que yo hice. Después de eso pude crear la base de datos, realmente no sé por qué no pude crearla al principio, ya que no tuve ningún problema con el espacio o el permiso. Bueno espero que esto ayude a los usuarios de WAMP.
Desactive SELinux especialmente si está en CentOS.
Marque Desactivar o desactivar SELinux .
El mismo problema, en mi caso cambié el directorio predeterminado en my.cf y el selinux lo ha bloqueado.
Probar:
setenforce 0
Para arreglar (CentOS)
Agrega contexto y hazlo permanente.
semanage fcontext -a -s system_u -t mysqld_db_t "/var/data/mysql(/.*)?" restorecon -Rv /var/data/mysql
fuente: https://naveensnayak.wordpress.com/2016/01/14/changing-mysql-data-directory-centos-7/
En /etc/mysql/my.cnf, configure datadir = / home / mysql_data, que es la ubicación donde realmente están los archivos de la base de datos en su máquina
Esto sucede probablemente debido a un permiso denegado por MySQL. Aunque establezca datadir=/drbd0/mysql/data
, pero por defecto MySql set socket = /var/lib/mysql/mysql.sock
, por lo que debe tener los privilegios para ese directorio.
less /etc/group
y entonces
less /etc/passwd
buscar el nombre de usuario y grupo de mysql, de forma predeterminada, es usuario de mysql en el grupo mysql.
cambie a mysql dir, probablemente /var/lib/mysql
y luego escriba cd ..
para subir un directorio.
chown -R mysql:mysql ./mysql/
Reemplace mysql:mysql
con algo diferente si los privilegios de grupo y usuario se denominan de manera diferente
Para Mac OS usa este comando
sudo chown -R mysql:mysql /usr/local/mysql*
El usuario mysql
debe tener acceso de escritura al directorio de datos de mysql.
Podría ser un problema con el espacio. Sigue esto
- Verifique los registros de .err en / var / lib / mysql
si el registro dice algo como "[ERROR] No se puede iniciar el servidor: no se puede crear el archivo PID: no queda espacio en el dispositivo"
Compruebe / var tamaño por df -hk / var
Si se usa al 100%, entonces tienes que encontrar los archivos que se están llenando.
encuentre el archivo grande en / var por encontrar / var / -type f -size + 100000k -exec ls -lh {} /; | awk ''{print $ 9 ":" $ 5}''
vea qué archivo puede eliminar y luego reinicie el proceso mysql
- /etc/init.d/mysql restart
Déjame saber si eso funcionó :)
Puede haber un problema de permisos con el directorio de datos de MySQL. Puede intentar configurar los permisos de la siguiente manera (ajuste la ruta a su directorio de datos)
chown -R mysql:mysql /usr/local/mysql/data
si mueves la carpeta mysql, reinicias mysql, funciona
sudo chown -R mysql: mysql / var / lib / mysql /