shell脚本简单操纵mysql数据库

来源:互联网 发布:淘宝店铺seo有哪些 编辑:程序博客网 时间:2024/06/06 00:29

     mysql登录参数中包括--execute参数,后面是紧接着sql语句。这样就把sql语句作为脚本的变量传递即可。那么我们就可以用脚本的方式执行了,这样就不用再登录mysql后,再写sql语句了。

   1.root用户登录

   2.创建新用户并赋予操纵登录权限

   3.localhost用户登录(似乎要加上-h选项,得获取当前主机ip才能登录?我这测试不加的话会否决)

   4.source ptah使用mysql执行.sql脚本(.sql脚本是数据库生成的--结构和数据--就是sql语句的集合)

#!/bin/bash#root登录并创建新用户function UseraddWithip(){    cd /usr/local/mysql/bin/    mysqllogin="root"    mysqlpass=""     newusername="iscas"    newuserpass="12345"    sql_createuser="CREATE USER '${newusername}' IDENTIFIED BY '${newuserpass}';";    sql_grant1="GRANT ALL PRIVILEGES ON *.* TO '${newusername}'@'%';";    sql_grant2="GRANT ALL PRIVILEGES ON *.* TO '${newusername}'@'localhost';";    sql_add="${sql_createuser}${sql_grant1}${sql_grant2}";    ./mysql --user=$mysqllogin --password=$mysqlpass --execute="$sql_add";}#root登录function Rootlogin(){    cd /usr/local/mysql/bin/    mysqllogin="root"    mysqlpass=""   ./mysql --user=$mysqllogin --password=$mysqlpass ;   #可以修改root密码   #newpass="12345"   #sql_db="use mysql;";   #sql_change="update user set authentication_string =password('${newpass}') where user='${mysqllogin}'; ";   #sql_flush="flush privileges;";   #sql_add="${sql_db}${sql_change}${sql_flush}";   #echo $sql_add;   #./mysql --user=$mysqllogin --password=$mysqlpass --execute="$sql_add";}#新建的用户进行登录,并导入.sql脚本执行SQL语句function createtable(){    cd /usr/local/mysql/bin/    mysqllogin="iscas"     mysqlpass="12345"     #locahost登录    createdb="test";       location="/usr/local/componetmetadata.sql";    ipaddr=`ip route show | sed -n '2'p|awk '{print $9}'`    sql_db="Create Database if Not Exists ${createdb} character set utf8 ;";    select_db="use ${createdb};";    sql_loc="source ${location};";    sql_add="${sql_db}${select_db}${sql_loc}";   ./mysql --user=$mysqllogin --password=$mysqlpass  -h$ipaddr --execute="$sql_add";}#本机登录function localhostlogin(){    cd /usr/local/mysql/bin/    ipaddr=`ip route show | sed -n '2'p|awk '{print $9}'`    #echo $ipaddr;    mysqllogin="iscas"    mysqlpass="12345"   ./mysql --user=$mysqllogin --password=$mysqlpass -h$ipaddr;  }#删除用户function deleteuser(){    cd /usr/local/mysql/bin/    delusername="iscas"    mysqllogin="root"     mysqlpass=""     sql_del1="DROP user '${delusername}'@'%';";    sql_del2="DROP user '${delusername}'@localhost;";    sql_add="${sql_del1}";   ./mysql --user=$mysqllogin --password=$mysqlpass --execute="$sql_add";}   #UseraddWithip#localhostlogin#deleteuserRootlogin#createtable    


0 0