shell批量远程连接mysql的方法

一、配置mysql服务器ip列表如下,可自定义:

S1     1.1.1.1     3306 user passwd11   dbname_s1
S2      2.2.2.2     3306 user passwd22  dbname_s2
S3      3.3.3.3     3306 user passwd33  dbname_s3

二、#linux批量连接多服务器的shell脚本如下:

#!/bin/bash

if [[ "$#" -lt "2" ]]
 then
     echo "error"
     echo "for example:$0 dbip.ini 20141001/select.sql"
    exit 1
fi

name=(`cat /root/scripts/$1 | awk ‘{print$1}‘`)
ip=(`cat /root/scripts/$1 | awk ‘{print$2}‘`)
port=(`cat /root/scripts/$1 | awk ‘{print$3}‘`)
user=(`cat /root/scripts/$1 | awk ‘{print$4}‘`)
pass=(`cat /root/scripts/$1 | awk ‘{print$5}‘`)
db_name=(`cat /root/scripts/$1 | awk ‘{print$6}‘`)

time=`date -d ‘-1 day‘ +%Y%m%d`

touch /home/data/$time.txt

len=${#ip[*]}

num=0
while [ $num -lt $len ]
do
  echo "===========  ${name[$num]}  ============="
  echo "===========  ${name[$num]}  =============" >> /home/data/$time.txt
  mysql -u${user[$num]} -p${pass[$num]} -h${ip[$num]} -P${port[$num]} ${db_name[$num]} < $2
  let num++
done

三、脚本运行方式,sh jiaoben.sh 参数1 参数2

参数1=dbip.ini(mysql服务器的配置列表)

参数2=需要运行的sql语句的文本,

师例:比如我的脚本名字为,gomysql.sh  需要运行的sql放在select.sql的记事本里面,运行方法如下:

sh gomysql_gamedb.sh dbip.ini select.sql

时间: 2024-11-06 23:37:31

shell批量远程连接mysql的方法的相关文章

远程连接mysql 授权方法详解

今在服务器上有mysql数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,接下来为您详细介绍 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY

mysql无法远程连接的解决方法

在阿里云服务器上安装好MySQL后,首先想到的就是安装一款工具来管理数据库,一开始选择了phpMyAdmin,这个工具安装很简单,只要解压到能访问的目录下就行了.在浏览器中访问phpMyAdmin目录就行了,输入用户名和密码就能进入管理数据库了. 但是每次打开浏览器来管理数据库还是不太方便,所以最终选择了Navicat软件来管理数据库,在新建连接时,输入正确的主机.用户名和密码,连接测试时弹出如下错误. 原因是MySQL默认不支持远程连接,(那么phpMyAdmin为什么可以连接呢?那是因为ph

解决远程连接mysql错误1130代码的方法

今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host192.168.2.159 is not allowed to connect to this MySQL server 猜想是无法给远程连接的用户权限问题.结果这样子操作mysql库,即可解决.在本机登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost&qu

解决远程连接mysql很慢的方法(网络正常)

最近用mysql命令行或者JDBC远程连接mysql速度很慢,而且远大于ping时间.上网搜了一下,解决方案如下: 在/etc/mysql/my.cnf文件的[mysqld]部分加入:skip-name-resolve,保存文件,重启mysql,搞定. 但这样做的代价是不能在MySQL的授权表中使用主机名了而只能用ip. 参考: http://www.jb51.net/article/27616.htm http://blog.163.com/[email protected]/blog/sta

mysql远程连接失败解决方法

远程连接MySQL报错无法链接原因可能是MySQL中的mysql库user表权限问题,做如下修改即可: 安装MySQL的机器上使用最高权限用户登陆MySQL: mysql -u root -p 修改权限: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; 更新: flush privileges; 退出: exit; 再次连接成功 原文地址:https://www.cnblogs.com/

Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是由于MySQL不准许远程连接. 修改方法如下: 1:在服务端MySQL文件夹下找到my.ini文件.修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项) 2:重新启动MySQL服务. 测试连接情况: 如果没有给

远程连接Mysql失败的问题的解决的原因

在CentOS环境下,安装完Mysql后,root的密码为空,需要去设置密码才能使用,设置密码的方法如下: /usr/bin/mysqladmin -u root password yourpasswd 注意把上述命令的yourpasswd替换为自己的密码,这个时候如果使用以下命令成功登陆Mysql终端,说明密码设置成功: mysql -u root -p 此时,远程连接Mysql的时候,会提示你无法访问,查看系统表的user表,你回发现用户只有从localhost访问的权限: mysql> s

设置允许远程连接MySQL (Ubuntu为例)

MySQL默认配置是不允许远程连接,为了安全! 然而我需要这么做; 开始改配置; #1 设置用户权限 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use mysql #查看当前设置 mysql> select host,user from user; #修改 mysql> UPDATE user SET host='%' WHERE user='root' AN

通过linux远程连接mysql,查询结果中文为乱码小结

首先本地办公环境为windows使用的是navicat连接的mysql navicat连接mysql时查询结果正常 查看编码方式: mysql> show variables like '%character%'; +--------------------------+--------------------------------+ | Variable_name            | Value                          | +-----------------