2015-08-11 18 views
9

Tôi đang cố thiết lập điểm cuối thời gian thực trên Asterisk 13 bằng trình điều khiển MySQL ODBC (libmyodbc5a). Vì vậy, quan sát thấy rằng một khi một điểm cuối đã được đăng ký, Asterisk Server bị treo. The Message log cho thấy:Dấu hoa thị bị treo trên đăng ký điểm cuối

res_odbc.c: SetConnectAttr (Txn isolation) returned an error: HY000: [MySQL][ODBC 5.3(w) Driver]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '7' at line 1 
res_config_odbc.c: SQL Prepare failed![SELECT * FROM ps_domain_aliases WHERE id = ?] 
res_odbc.c: Connection is down attempting to reconnect... 
res_odbc.c: Connecting DE-VOICE 
res_odbc: Connected to DE-VOICE [DE-VOICE-DNS] 
SetConnectAttr (Txn isolation) returned an error: HY000: [MySQL][ODBC 5.3(w) Driver]Lost connection to MySQL server during query 

Bất kỳ trợ giúp sẽ được apperciated

+0

lẽ [này] (http://dba.stackexchange.com/questions/10578/client-times- ra-trong-mysql-query-vẫn-chạy) có thể giúp đỡ? –

Trả lời

0

Các thông báo lỗi từ MySQL chỉ ra rằng một truy vấn được gửi đến máy chủ mà nó không thể phân tích cú pháp. Tôi tưởng tượng những gì đang thực sự được gửi đến MySQL không phải là khá những gì được nói trong bản ghi lỗi (SELECT * FROM ps_domain_aliases WHERE id =?) Kể từ khi lỗi cú pháp liên quan đến '7'. Tôi đoán ODBC mở rộng các truy vấn nhưng có lẽ không làm điều đó khá đúng. Nếu tôi đã gỡ lỗi điều đầu tiên tôi sẽ làm là sử dụng tcpdump hoặc một số tiện ích capture gói khác để nắm bắt lưu lượng trên cổng MySQL (3306 theo mặc định), và tìm ra cái gì thực sự được gửi đi. Sau đó, sau khi xác minh nó là rác, tôi sẽ nâng cấp trình điều khiển ODBC và dấu hoa thị, sau đó có thể thử cấu hình Asterisk để sử dụng một số cách khác để nói chuyện với MySQL.

0

bạn có thể mô phỏng giá trị mong đợi của "?" trong truy vấn, chạy nó thông qua NoOp, và sau đó chạy truy vấn kết quả bên trong mysql, để xem nếu nó thực sự hiển thị kết quả mong đợi IN mysql.

Ngoài ra bạn có thể bật gỡ lỗi và tăng tính cách rườm rà từ bên trong dấu hoa thị, để xem những gì đang thực sự xảy ra ..

Ngoài ra, cố gắng đưa id =? trong '' dụ:

SELECT * FROM ps_domain_aliases WHERE id = "?" 

Tôi biết bạn gửi một số nguyên, nhưng vẫn ..

Các vấn đề liên quan