La tabla es ‘solo lectura’

Cuando quiero ejecutar una consulta de update en mi tabla, recibo un error que dice:

1036 – Los data tabla son de solo lectura.

¿Cómo puedo arreglar eso?

Los atributos de tabla en /var/db/mysql se establecen en 777 .

La función ‘Reparar tabla’ no parece ayudar.

¿Hay algo que pueda hacer con eso?

quien posee / var / db / mysql y en qué grupo están, debe ser mysql: mysql. también necesitarás reiniciar mysql para que los cambios tomen efecto

También verifique que el usuario que inició sesión actualmente tenga acceso GRANT para actualizar

En mi caso, el archivo de configuración de mysql tenía innodb_force_recovery = 1. Comentando eso resuelto el problema. Espero que ayude a alguien.

Debe cambiar el propietario a MYSQL: MYSQL.

Utilice este comando: chown -Rf mysql:mysql /var/lib/mysql/DBNAME

(Esta respuesta está relacionada con el título, pero no con la pregunta original).

En caso de que (como yo) intentemos alterar temporalmente los datos a través de la interfaz de MySQL Workbench:

  • Si la tabla no tiene una clave principal, MySQL Workbench no tiene forma de identificar la fila que está tratando de alterar, por lo que no puede modificarla.

  • La solución en ese caso es alterar los datos a través de otra ruta, o simplemente agregar una clave primaria a la tabla.

En cualquier caso, espero que ayude a alguien 🙂

MySQL no tiene acceso de escritura al archivo de la base de datos. Compruebe los permisos y el propietario del archivo.

Otra forma de recibir este error es crear su tabla con una statement “Me gusta” y usar como fuente una tabla fusionada. De esta forma, la tabla de creación reciente es de solo lectura y no puede “recibir” ningún registro nuevo.

asi que

 CREATE TABLE ic.icdrs_kw37 LIKE ic.icdrs ... #< - a merged table. 

entonces:

 REPLACE INTO ic.icdrs_kw37 ... # -> "Table is read-only" 

¿error o característica?