本篇文章给大家谈谈访问linux mysql数据库,以及访问linux mysql数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
本文整理一下解答该问题的过程,顺便练习一下 Shell 编程。
安装 expect
测试这个脚本,执行到了 /usr/bin/expect 这一行时报文件不存在错误,一搜才知道 expect 是一个命令,需要安装,安装命令为:
yum install expect
自动登录 MySQL
这个脚本的目的是使用 expect 命令自动登录 MySQL 并循环登录 N 次,完成插入 N 条数据。
需要解决的几个问题是:
每一轮登录 MySQL 并执行完成 insert 后需要退出命令循环累加操作必须放在 expect 的 EOF 外部send 发送参数时需要空格Shell 条件语句要用中括号,且首尾处必须要有空格
创建测试库和表:
#!/bin/bashnumber=100while [ ${number} -lt 120 ] do echo "number is"$number /usr/bin/expect <<-EOF spawn mysql -h IP -P 3306 -u root -p123456 expect "*>*" send "show databases;\r" expect "*>*" send "use testserver;\r" expect "*>*" send "show tables;\r" expect "*>*" send "INSERT INTO testnum values('${number}',);\r" expect "*>*" send "quit;\r"EOFlet "number++"done
这样,就得到一个通过 expect 自动完成 MySQL 数据库交互的脚本。

自动执行MySQL脚本结果
自动完成与数据库命令的交互操作并批量入库 N 条记录。
搜索了一下 expect 命令,有不少用它来登录 MySQL 的文章,这么看来它至少可以完成两个自动化功能:
如果需要经常访问 Linux 上的 MySQL 数据库,可以写一个 MySQL 自动登录脚本完成数据库的批量操作
如果直接在文件中注明使用 expect 脚本的话,那么就只能通过 spawn 来执行其他命令,否则会报命名不存在,例如:
#!/usr/bin/expect -fspawn service mongod restartsu elastic
后面一句 su 命令是无法执行成功的,会报命令不存在错误,而且对于指定了 bin 脚本的文件,只能通过 ./文件名的方式来执行,而不能再用 sh xx.sh 的执行了,因为 sh 固定会找 /usr/bin/bash 文件来执行,就不能使用 expect 的命令了。
相关信息就介绍到这里,访问linux mysql数据库的问题希望对你有所帮助。