Preguntas Técnicas sobre Bitrix


Errores de Base de Datos

  • entrada duplicada '1254 ' para la clave 1
  • Errores con la tabla b_search_content_stem
  • Obtener un error 28 del manejador de tabla
  • Fuera de la memoria, reinicie el servidor y vuelva a intentarlo (bytes necesarios XXXXX)
  • error de consulta a la Base de Datos. Por favor, inténtelo más tarde
  • Acceso negado para usuario: 'user@%' base de datos 'dab_test'
  • Valor está fuera del alcance para la columna 'USER_ID' en la fila 1
  • Servidor apagado en curso
  • Lista de elementos se ordenan incorrectamente
  • El sistema basado en Oracle muestra el siguiente error: ORA-01704: string literal demasiado largo
  • El siguiente error se produce tratando de pasar a otro hosting: "# 1064 - Usted tiene un error en su sintaxis SQL ... 'DEFAULT CHARSET = ..."
  • Servidor no responde al guardar los datos del formulario en MySQL.
  • "El servidor MySQL se ha apagado" o "Se perdió la conexión con el servidor durante la consulta"

  • entrada duplicada '1254 ' para la clave 1
    Cuando abro la página, aparece el siguiente error: [Duplicate entry '1254 'for key 1].

    ¿Qué debo hacer y cómo puedo restaurar el funcionamiento normal del sitio? Los siguientes errores son también signos de este problema: 

    [Can't open file: '.MYD'. (errno: 144)] 
    [Can't open file: '.MYI'. (errno: 145)]

    Esto puede ocurrir cuando el índice de la tabla está dañado en tablas MySQL/MyISAM. Este error se debe exclusivamente a la forma en MySQL maneja tablas MyISAM. 

    Usted puede tomar los siguientes pasos para eliminar este problema: 

    1. A través de SSH (si tiene acceso). 
    1,1. Póngase en contacto con el servidor que aloja el sitio a través de SSH. 
    1,2. Póngase en contacto con la base MySQL utilizando la herramienta de mysql:

    mysql -u -h -P 3306 -p Enter password: 

    1,3. Introduzca el comando SQL:

    REPAIR TABLE ;

    Usted puede obtener el nombre de la tabla desde el texto del mensaje de error. 
    2. Utilice las herramientas del sitio. En primer lugar, desactivar las estadísticas a continuación, abra el sitio. Esto se puede hacer de la siguiente manera: 
    2,1. Escriba el siguiente URL en su navegador: 

    http:///?no_keep_statistic_=Y&no_agent_statistic_=Y 

    donde:

    - Dominio de su sitio,

    que haya obtenido al registrar la versión demo o comprar el sistema. Después de abrir la página con los parámetros anteriores, las estadísticas se desactivará durante toda la sesión (hasta que se cierra el navegador).
     
    2.2.In menú del panel de control de consultas SQL, ejecute el siguiente comando SQL:

    REPAIR TABLE 

    Usted puede obtener el nombre de la tabla desde el texto del mensaje de error. Para evitar esta situación en el futuro, puede mover a las tablas InnoDB. Este tipo es un poco más lento que MyISAM, pero mucho más fiable. Los siguientes pasos son necesarios para cambiar el tipo InnoDB: 
    1) En el menú del panel de control de consultas SQL, ejecute el siguiente comando SQL:

    SHOW TABLES 

    2) Esto mostrará todas las tablas existentes. Ejecute el comando siguiente para cada uno de ellos: 

     ALTER TABLE , type=InnoDB 

    3) Después de las tablas de base de datos han sido trasladados a InnoDB añadir el siguiente código al archivo /bitrix/php_interface/dbconn.php:

    define("MYSQL_TABLE_TYPE", "InnoDB");


    Errores con la tabla b_search_content_stem
    El sistema encuentra varios errores en la tabla b_search_content_stem:

    [CODE]Can't open file: 'b_search_content_stem.MYD'. (errno: 145)
    Can't open file: 'b_search_content_stem.MYI' (errno: 145)
    Incorrect key file for table './xxxxxx/b_search_content_stem.MYI'; try to repair it
    Incorrect key file for table 'b_search_content_stem'; try to repair it [/CODE]

    Para resolver este problema, ejecute lo siguiente en la ventana de consulta SQL:  

    [CODE]repair table b_search_content_stem [/CODE]
     
    Para aumentar la fiabilidad de la tabla, se puede cambiar a InnoDB en lugar de MyISAM (si el servidor lo permite). Para ello, restaurar la tabla y ejecute:

    [CODE]alter table b_search_content_stem, type=InnoDB [/CODE]


    Obtener un error 28 del manejador de tabla
    El siguiente error MySQL se presenta: 

     [CODE][Got error 28 from table handler][/CODE]

    Este mensaje de error MySQL señala de que se ha quedado sin espacio de disco libre. Póngase en contacto con su administrador de sistema para resolver este problema.


    Fuera de la memoria, reinicie el servidor y vuelva a intentarlo (bytes necesarios XXXXX)
    El siguiente error MySQL se presenta: 

    [CODE][Out of memory; restart server and try again (needed XXXXX bytes)] [/CODE] Este mensaje de error indica que no hay suficiente memoria para el servidor MySQL para obtener los datos. Muy a menudo la solución a este problema es reiniciar el servidor Web y MySQL.

    Además, se recomienda que especifique los siguientes valores para MySQL en el archivo my.cnf:

    [CODE]key_buffer = 128K
     max_allowed_packet = 8M
     table_cache = 4 
     sort_buffer_size = 128K
     read_buffer_size = 128K
     read_rnd_buffer_size = 128K
     net_buffer_length = 128K
     thread_stack = 128K [/CODE]

     Si algunos de los valores recomendados son más bajos que los actuales, no los cambie.


    error de consulta a la Base de Datos. Por favor, inténtelo más tarde
    Al instalar el sistema, aparece el siguiente error: 

    [CODE][DB query error. Please try later.][/CODE]

    Para resolver este problema, establezca la variable $DBDebug en true en /bitrix/php_interface/dbconn.php. A continuación, vuelva a cargar la página para mostrar un mensaje de error. Envíe esto a nuestro servicio de soporte técnico.


    Acceso negado para usuario: 'user@%' base de datos 'dab_test'
    El siguiente error se produce cuando se instala MySQL del sistema:  

    [CODE]MySQL Query Error: LOCK TABLE b_agent WRITE[Access denied for user: ' user @%' to database 'dab_test'][/CODE]

    Los derechos de MySQL LOCK se asignan por separado a partir de la versión 4 y superiores. Asignación de derechos de LOCK TABLES a este usuario de base de datos.


    Valor está fuera del alcance para la columna 'USER_ID' en la fila 1
    A continuación MySQL produce el error siguiente: 

    [CODE]Module: statistic (4.1.2) Class: CAllStatistics File: 
    C:\bitrix\bitrix\modules\statistic\classes\general\statistic.php Function: Keep Line: 1438 MySQL Query Error: INSERT INTO b_stat_session(GUEST_ID, NEW_GUEST, USER_ID, USER_AUTH, ...) VALUES ('1', 'N', '', 'N', ...)[Out of range value adjusted for column 'USER_ID' at row 1] [/CODE]

    Obviamente, tienes que MySQL 5.x instalado. Debe eliminar STRICT_TRANS_TABLES del valor de la variable sql-mode. 
     
    Método 1: cambiar la configuración del servidor en my.cnf

    Por ejemplo: 

    [CODE]sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" [/CODE] 

    en lugar de: 

    [CODE]sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" [/CODE] 

    Método 2: Agregar la siguiente llamada a /php_interface/after_connect.php [CODE]$DB->Query("set sql_mode=''") [/CODE]


    Servidor apagado en curso
    Este error suele producirse cuando el servidor limita los recursos que un sistema operativo puede asignar para un proceso. Póngase en contacto con el administrador del sistema para ver por qué se reinicia el servidor MySQL.

    Lista de elementos se ordenan incorrectamente
    Las siguientes razones para este problema son posibles:

    1.- 4.1.21 MySQL está instalado; este error es típico para esta versión (http://bugs.mysql.com/bug.php?id=21456) Póngase en contacto con su administrador de hosting sobre este problema. 

    2.- Compruebe los parámetros que definen la codificación de base de datos: character_set o character_set_server y character_set_database (por MySQL 4.1 y superiores). Con codificaciones distintas de cp1251 (alfabeto cirílico), por ejemplo, latin1, las filas con símbolos cirílicos se ordenan incorrectamente.

    Ejecute la siguiente consulta para comprobarlo: 

    [CODE] varables como 'char%', [/CODE]

    Para resolver este problema, agregue las siguientes convocatorias en el archivo /bitrix/php_interface/after_connect:

    [CODE] @ mysql_query ("SET = collation_connection cp1251_general_ci", $ DB-> db_Conn);
    @ Mysql_query ("SET character_set_results = cp1251", $ DB-> db_Conn); 
    @ Mysql_query ("SET character_set_client = cp1251", $ DB-> db_Conn); 
    @ Mysql_query ("SET collation_database = cp1251_general_ci", $ DB-> db_Conn); 
    @ Mysql_query ("SET collation_server = cp1251_general_ci", $ DB-> db_Conn); 
    @ Mysql_query ("SET character_set_server = cp1251_general_ci", $ DB-> db_Conn); 
    @ Mysql_query ("SET character_set_database = cp1251_general_ci", $ DB-> db_Conn); [/ CODE]

    Si las acciones anteriores no ayudan, instalar de nuevo el sistema al crear el dunmp y la nueva base de datos en cp1251.


    El sistema basado en Oracle muestra el siguiente error: ORA-01704: string literal demasiado largo
    Lo más probable es que se instale el sistema de codificación de Oracle establece en UTF-8. Establezca el valor of NLS_LANG a, por ejemplo, AMERICAN_AMERICA.CL8MSWIN1251 mediante la edición del Registro de Windows en HKLM/SOFTWARE/ORACLE

    El siguiente error se produce tratando de pasar a otro hosting: "# 1064 - Usted tiene un error en su sintaxis SQL ... 'DEFAULT CHARSET = ..."
    Este error puede suceder cuando la base de datos dump se crea en MySQL 4.1 o más superior, pero implementado en una versión anterior de MySQL que no soporta declaración de tabla de página de códigos.

    Utilice la opción mysqldump:--compatible=mysql40 para resolver este problema.


    Servidor no responde al guardar los datos del formulario en MySQL.
    Esto a menudo se debe a un valor inaceptable bajo del parámetro PHP odbc.defaultlrl que es 4096 de forma predeterminada. Usted debe aumentar esto significativamente. Por ejemplo, a 64000.

    "El servidor MySQL se ha apagado" o "Se perdió la conexión con el servidor durante la consulta"
    El servidor corta la conexión al ejecutar la consulta el servidor pierde la conexión.

    El problema es causado por la configuración de MySQL. El error suele producirse cuando el tiempo de vida de conexión muy corto se especifica en la configuración del servidor.

    Agregue la siguiente llamada en Bitrix/php_interface/after_connect.php:

    [CODE]$DB->Query ("SET wait_timeout=28800");[/CODE]

    Si no se resuelve el problema, póngase en contacto con su administrador de hosting.

     Ver también:
    http://dev.mysql.com/doc/refman/5.0/en/gone-away.html