Cacti玩过的人都知道是什么。
想取里面的主机状态数据和其他系统做一个集成。
一:取数据表
使用root+ www.cnyunwei.com登录
[root@Cnyunwei etc]# mysql -u root -p cacti
在hosts表里面找到 SELECT status_last_error ,status_rec_date ,status_fail_date,status,status_last_error from cacti.host
其中status :3在线 1宕机
二.客户端
取数使用C#开发,需要mysql.data.dll,这个需要去https://www.mysql.com/下载,下载地址为:
https://dev.mysql.com/downloads/windows/visualstudio/
下载解压缩,在c#总添加了mysql.data.dll引用
引用成功,却总是提示是否缺少using指令或程序集引用;
搞了半天,终于找到原因:去https://downloads.mysql.com/archives/visualstudio/ 下载旧版本,找一个4.0的版本,搞定。
但是提示无法连接数据库主机。
三.防火墙开通3306端口
vi /etc/sysconfig/iptables
添加如下防火墙策略
-A INPUT -n state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启
service iptables restart
但连接还是错误
ERROR 1130 (HY000): Host '******' is not allowed to connect to this MySQL server
四.修改mysql的用户权限
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)mysql> exit
到mysql的user表中改了一通,居然过了。
五.日期格式问题
连接问题不存在了,但是程序执行时报错,主要时读取日期格式的时候:“Unable to convert MySQL date/time value to System.DateTime”
解决办法就是:在连接字符串中添加Allow Zero Datetime=True
搞定!