上下文:电话系统(星号),使用MySQL C API连接到数据库以查找呼叫进入时的路由。查找涉及连接到数据库,执行查询,然后关闭连接。
有时早上的第一个电话会产生以下错误:
用户'asterisk'@'127.0.0.1'的访问被拒绝(使用密码:是)
通常这意味着密码错误,但是这里显然不是这种情况,因为它在所有通话中始终使用相同的用户名和密码。好像系统以某种方式“无法入睡”,或者某个文件句柄在某处已过时,因此第一次尝试连接数据库失败,但是其余的工作正常。而且它只是偶尔发生,所以我无法复制它-非常奇怪!
我在Debian 8.7上使用Asterisk 1.8.32和MySQL 5.5。
有点麻烦,所以我将不胜感激!
答案 0 :(得分:0)
首先,由于安全性功能,目前不建议使用1.8。*树。
移至11. *可解决此问题。
您还可以在my.cnf中进行以下操作
interactive_timeout=
设置为4天(周末)以上的任何值
其他选项是每3小时通过crontab重新加载mysql模块。
最佳选项(升级除外)是从mysql移到 res_odbc ,该选项具有keepalive选项。 res_config_mysql考虑已弃用,因此任何新系统都应使用ODBC。