结果说明: mysql.default_socket是使用本地连接时默认使用的socket. MYSQL_SOCKET是内置的socket.MYSQL_SOCKET,是在安装php时通过--with-mysql-sock定义的. 总结: 启动mysql时最好加上--socket参数指定socket.使用mysql_connect连接数据库,server的形式最好是"ip:port".
ACCESS DENIED for XML export
修改/usr/local/ocs/lamp/apache/htdocs/ocsreports/plugins/main_sections/conf/sadmin_config.txt文件
<PAGE_PROFIL>...</PAGE_PROFIL>添加一行"ms_export_ocs:(true|ms_export_ocs)",重启apache服务即可导出xml文件
这里要注意一个问题:
如果在<RESTRICTION>...</RESTRICTION>添加一行"EXPORT_XML:YES", 那么导出xml链接功能消失
ocsinventory-server: Can't load SOAP::Transport::HTTP* 1)需要安装perl-Apache2-SOAP模块 2)或者注释PerlModule Apache::Ocsinventory::SOAP没有这个模块,web service不能使用
在httpd.conf加入 Include ocsinventory-server.conf后错误变成,
[error] Cannot establish communication : 500 Internal Server Error,
查看ocs server的apache日志 tail logs/error_log发现 Can't call method "do" on an
undefined.
后来将OCS_OPT_DBI_PRINT_ERROR设置成1(输出perl访问数据库的错误信息)
tail logs/error_log 发现DBI connect('database=ocsweb;host=localhost;
host=localhost;port=3306','ocs',...) failed: Can't connect to local MySQL server
through socket '/usr/local/ocs/lamp/mysql/tmp/mysql.sock'
原来ocs server默认的mysql sock path is '/usr/local/ocs/lamp/mysql/tmp/mysql.sock'
安装时mysql sock的目录是"/usr/local/ocs/lamp/mysql/data/mysql.sock"
将OCS_OPT_DBI_MYSQL_SOCKET设置成 "/usr/local/ocs/lamp/mysql/data/mysql.sock"
重启服务后,再运行ocsinventory-agent --server=http://ocs_server_ip/ocsinventory --debug
It's OK.