2010-11-04 37 views
8

Tôi có một phiên bản MySQL 5.0.4.1 với một ứng dụng được viết bằng Hibernate. Trên một trong các trang, tôi nhận được thông báo lỗi sau trong nhật ký máy chủ:Chỉ số bộ ký tự không xác định cho trường nhận được từ máy chủ

Chỉ số ký tự không xác định cho trường '123' nhận được từ máy chủ.
tại com.mysql.jdbc.Connection.getCharsetNameForIndex (Connection.java:1664)
tại com.mysql.jdbc.Field. (Field.java:144)
tại com.mysql.jdbc.MysqlIO.unpackField (MysqlIO.java : 506)
tại com.mysql.jdbc.MysqlIO.getResultSet (MysqlIO.java:280)
tại com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:1319)
tại com.mysql.jdbc.MysqlIO.sqlQuery (MysqlIO.java:1218)
tại com.mysql.jdbc.Connection.execSQL (Connection.java:2233)
tại com.mysql.jdbc.Connection.execSQL (Connection.java:2193)
tại com.mysql.jdbc .Connection.execSQL (Connection.java:2174)
tại com.mysql.jdbc.Connection.setAutoCommit (Connection.java respect36)
tại org.apache.commons.dbcp.DelegatingConnection.setAutoCommit (DelegatingConn ection.java:268)
tại org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper.setAutoCommit (PoolingDataSource.java:293)
tại org.hibernate.transaction.JDBCTransaction.toggleAutoCommit (JDBCTransaction.java:194)
tại tổ chức. hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit (JDBCTransaction.java:186)
tại org.hibernate.transaction.JDBCTransaction.rollback (JDBCTransaction.java:162)
tại org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback (HibernateTransactionManager.java: 603)
tại org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback (AbstractPlatformTransactionManager.java WEBC79)
tại org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback (AbstractPlatformTransactionManager.java:556)
tại org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing (TransactionAspectSupport.java:284)
tại org.springframework.transaction.interceptor.TransactionInterceptor.invoke (TransactionInterceptor.java:100)
tại org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:170)
tại org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke (MethodSecurityInterceptor.java:66)
tại org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java: 170)
tại org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke (MethodSecurityInterceptor.java:66)
tại org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (Reflecti veMethodInvocation.java:170)
tại org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:176)
tại $ Proxy6.getDataFromDatabase (Nguồn không xác định)
tại org.myCompany.myAction.load (Unknown Source)
tại sun.reflect.NativeMethodAccessorImpl.invoke0 (Phương thức Gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
tại java.lang. reflect.Method.invoke (Method.java:324)
tại org.apache.struts.actions.DispatchAction.dispatchMethod (DispatchAction.java:274)
tại org.apache.struts.actions.DispatchAction.execute (DispatchAction.java: 194)
tại org.apache.struts.action.R equestProcessor.processActionPerform (RequestProcessor.java:419)
tại org.apache.struts.action.RequestProcessor.process (RequestProcessor.java:224)
tại org.apache.struts.action.ActionServlet.process (ActionServlet.java:1196)
tại org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:414)
tại javax.servlet.http.HttpServlet.dịch vụ (HttpServlet.java:787)
tại javax.servlet.http.HttpServlet.service (HttpServlet.java:908)
tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247)
tại tổ chức. apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
tại org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:264)
tại org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke (FilterSecurityInterceptor.java:107)
tại org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:72)
tại org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
tại org. acegisecurity.ui.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:110)
tại org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
tại org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125)
tại tổ chức .acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
tại org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:217)
tại org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy .java: 274)
tại org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter (HttpSessionContextIntegrationFilter.java:229)
tại org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
tại org.acegisecurity.util.FilterChainProxy.doFilter (FilterChainProxy.java:148)
tại org.acegisecurity.util.FilterToBeanProxy.doFilter (FilterToBeanProxy.java:98)
tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:213)
tại org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
tại org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:280)
tại tổ chức. apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:509)
tại org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:218)
tại org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:509)
tại org.apache.catalina.core.StandardHostValve.invoke (StandardHos tValve.java:209)
tại org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:509)
tại com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process (NSAPIProcessor.java:157)
tại com.iplanet.ias.web.WebContainer.service (WebContainer.java:579)

lỗi này xảy ra trên một môi trường sản xuất vì vậy tôi không biết mà truy vấn tạo ra vấn đề, nhưng tôi biết rằng không có bảng nào của tôi có cột có tên '123'. Bạn có bất cứ đề nghị nào về những gì có thể gây ra vấn đề này không?

Chỉnh sửa: Theo dõi, tôi thấy rằng hành vi này là known bug in MySQL 5.0.4, nhưng tôi chưa tìm thấy một sự kiện nào tốt vì tôi không có tùy chọn nâng cấp mySQL.

Trả lời

0

Có thể bằng cách nào đó ký tự đặt cho trường đã được đặt thành giá trị không hợp lệ, hãy chạy SQL này trên máy chủ với sự cố thay thế tên bảng và cột 'Collation' sẽ hiển thị ký tự cho mỗi varchar/char lĩnh vực

SHOW FULL COLUMNS IN table_name; 

sau đó, bạn có thể thay đổi bộ ký tự của một trường bằng cách sử dụng như sau:

ALTER TABLE t MODIFY col1 VARCHAR(50) CHARACTER SET latin1; 
Các vấn đề liên quan