1.--show-warnings=false
在指定 MySQL 命令获取参数时, 指定不获取 Warning. 不过亲测这个方法不是很有效
例如:
MySQL -uroot -p123 --show-warnings=false -Ne "show variables like'innodb_buffer_pool_size';" 2>/dev/null
2, 在 MySQL 的配置文件 /etc/my.cnf 中指定登录的用户名, 密码等信息
添加上如下信息:
- [client]
- user=zabbix
- password=123
- host=localhost
- socket=/usr/local/MySQL/data/MySQL.sock
- [mysqladmin]
- user=zabbix
- password=123
- host=localhost
指定的值要根据自己的情况而定
为了安全起见, 建议不要使用 root 和其他高权限的用户登录. 我们可以在 MySQL 数据库中创建一个 zabbix 用户, 仅供 zabbix 获取参数使用, 不需要给它增加权限, 所以不会造成事故.
3, 上述第二中情况下, 修改配置文件需要重启 MySQL 服务才能生效, 在实际的生产过程中可能不允许重启 MySQL.
为了解决这个问题, 还可以在执行一个目录, 在这个目录中创建一个 .my.cnf 隐藏文件, 添加和上述 2 中相同的内容. 目录可以随意指定, 建议指定的 zabbix 配置文件中. 这里我放到了 / usr/local/zabbix-agent/etc 目录下
然后, 执行 MySQL 命令时在命令前面加上 HOME=/usr/local/zabbix-agent/etc/ 这个执行时就会读取这个目录下的配置文件
例如:
HOME=/usr/local/zabbix-agent/etc/ MySQL -e "show variables like'innodb_buffer_pool_size';"|grep -v Value |awk '{print$2}'
这样就不会出现因密码问题造成的 Warning 了.
另外, 如果出现通过 sock 文件无法连接的情况, 可以不通过 sock 文件连接, 而是通过 TCP/IP 连接, 在命令后面指定 -h 127.0.0.1
来源: https://www.cnblogs.com/cmgg/p/10828438.html