最近在写脚本时需要向MySQL数据库中存储数据,且脚本运行的服务器与MySQL服务器不是同一台服务器,而且需要保证MySQL密码的安全性,不能在脚本中暴露,所以就需要在服务器上安装MySQL客户端,并配置免密登录。
一、虚拟机环境
下面是我安装的虚拟机网络配置
虚拟机编号 | IP地址 | 子网掩码 | 备注 |
100 | 192.168.164.100 | 255.255.255.0 | mysql服务 端口16800 |
101 | 192.168.164.101 | 255.255.255.0 |
这里我们准备了两台虚拟机,MySQL服务安装在192.168.164.100服务器上,需要保证两台服务器的网络互通
二、卸载Mariadb客户端
安装之前最好是检测是否存在mariadb客户端,如果存在则使用rpm进行卸载
检测是否存在mariadb客户端
rpm -qa | grep mariadb
卸载mariadb客户端
rpm -e `rpm -qa | grep mariadb`
三、安装客户端
我们的目标是在101服务器上安装MySQL客户端,实现在101服务器上可以连接到MySQL服务
1、下载
从MySQL官方下载MySQL客户端(MySQL :: Download MySQL Community Server (Archived Versions))
然后选择
这里我的MySQL服务是5.7版本的,所以我选择的是5.7的客户端,另外101服务器的处理器是x86架构的,所以不能选错了,客户端的安装需要依赖common和libs包,所以需要下载上面选中的三个rpm包。这里我使用了wget下载:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-common-5.7.44-1.el7.x86_64.rpm && wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-5.7.44-1.el7.x86_64.rpm && wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-5.7.44-1.el7.x86_64.rpm
这里我将三个rpm包下载到了/opt目录下。
2、安装客户端
下载MySQL客户端安装包后可以使用rpm进行安装
rpm -ivh /opt/mysql-community-*.rpm
执行命令后会提示安装成功
3、使用客户端
安装成功后就可以使用MySQL客户端连接MySQL服务了
四、免密登录
MySQL免密登录是通过mysql_config_editor命令实现的,可以使用man mysql_config_editor查看命令的使用方式。
1、免密配置
配置免密登录,执行命令:
mysql_config_editor set --login-path=odi_login --host=192.168.164.100 --port=16800 --user=odi --password
命令执行完成后会提示输入密码:
密码输入成功后就可以进行免密登录了
2、查看免密配置
配置完免密配置后,可以使用命令查看所有的免密配置或指定的免密配置
查询指定的免密配置:
mysql_config_editor print --login-path=odi_login
执行命令的结果如下:
查询所有的免密配置
mysql_config_editor print --all
执行命令的结果如下:
3、免密登录
mysql --login-path=odi_login
执行命令后如下:
登录时我们使用到了--login-path参数,此参数需要与配置免密登录时的--login-path一致才能进行免密登录
4、移除免密登录
mysql_config_editor remove --login-path=odi_login
执行命令后再次查询所有免密配置信息如下:
使用免密登录时会出现异常: