日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

shell+mysql获取数据库名_shell操作mysql数据库

發(fā)布時間:2024/9/18 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell+mysql获取数据库名_shell操作mysql数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、安裝啟動mariadb

yum install mariadb mariadb-server mariadb-libs -y

systemctl start mariadb

#導(dǎo)入數(shù)據(jù)

mysql

create database *** default character set utf8;

use ***;

show tables;

mysql *** < ***.sql

#賦予普通用戶權(quán)限

grant all on 數(shù)據(jù)庫名.* to 用戶名@'%' indentified by '123456';(all-所有權(quán)限,.*-該數(shù)據(jù)庫下所有表,%所有主機,123456密碼)

grant select on...(select-查詢權(quán)限)

#查詢用戶可以從哪些主機訪問

use mysql;

show tables;

select * from user;

desc user;(desc查詢表結(jié)構(gòu))

select User,Host,Password from user;(Host為%表示用戶從所有主機都可以訪問)

#普通用戶登錄mysql

mysql -u 用戶名 -p 密碼 -h 主機IP

#普通用戶導(dǎo)入數(shù)據(jù)

mysql -u 用戶名 -p 密碼 -h 主機IP? 數(shù)據(jù)庫名 < ***.sql

二、shell腳本與mysql數(shù)據(jù)庫交互

mysql命令參數(shù)詳解

-u 用戶名

-p 用戶密碼

-h 服務(wù)器IP地址

-D 連接的數(shù)據(jù)庫

-N 不輸出列信息

-B 使用tab鍵代替默認(rèn)交互分隔符

-e 執(zhí)行sql語句

其他選項

-E 垂直輸出

-H 以HTML格式輸出

-X 以XML格式輸出

mysql -u 用戶名 -p 密碼 -h 主機IP -D 數(shù)據(jù)庫名 -e "select * from 表名"

vim operate_mysql.sh

#!/bin/bash

user="用戶名'

password="密碼"

host="主機ip"

db_name="$1"

SQL="$2"

mysql -u"$user" -p"$password" -h"$host" -D"$db_name" -B -e "$SQL"(-B是為了可以導(dǎo)入excel)

sh?operate_mysql.sh?參數(shù)1-數(shù)據(jù)庫名 參數(shù)2-sql語句

#將sql查詢結(jié)果導(dǎo)入excel

sh?operate_mysql.sh?參數(shù)1-數(shù)據(jù)庫名 參數(shù)2-sql語句 > result.txt

打開excel-數(shù)據(jù)-自文本

三、shell腳本將文本數(shù)據(jù)導(dǎo)入到mqsql

data.txt

vim import.sh

#!/bin/bash

user="用戶名'

password="密碼"

host="主機ip"

mysql_conn="mysql -u"$user" -p"$password" -h"$host""

cat data.txt | while read id name birth sex

do

if [[ $id -gt 1014 ]]; then

$mysql_conn -e "insert into? 數(shù)據(jù)庫名.表名 values('$id','$name','$birth','$sex')"

fi

done

sh import.sh

data2.txt

vim import.sh

#!/bin/bash

user="用戶名'

password="密碼"

host="主機ip"

#shell內(nèi)置環(huán)境變量,如果不指定,shell默認(rèn)空格或tab鍵為分隔符

IFS="|"

cat data2.txt | while read id name birth sex

do

if [ $id -gt 2022 ]; then

mysql -u"$user" -p"$password" -h"$host" -e "insert into? 數(shù)據(jù)庫名.表名 values('$id','$name','$birth','$sex')"

fi

done

sh import.sh

四、備份mysql數(shù)據(jù),并通過ftp將其傳輸?shù)竭h(yuǎn)端主機

備份mysql中的庫或表

mysqldump

-u 用戶名

-p 密碼

-h 服務(wù)器IP地址

-d 等價于--no-data 只導(dǎo)出表結(jié)構(gòu)

-t 等價于--no-create-info 只導(dǎo)出數(shù)據(jù),不導(dǎo)出建表語句

-A 等價于--all-databases

-B 等價于--databases 導(dǎo)出一個或多個數(shù)據(jù)庫

mysqldump -u 用戶名 -p 密碼 -h 主機IP 數(shù)據(jù)庫名 >***.sql(備份數(shù)據(jù)庫)

mysqldump -u 用戶名 -p 密碼 -h 主機IP 數(shù)據(jù)庫名? 數(shù)據(jù)表名 >***.sql(備份數(shù)據(jù)表)

mysqldump -u 用戶名 -p 密碼 -h 主機IP -A >***.sql(備份所有有權(quán)限的數(shù)據(jù)庫)

mysqldump -u 用戶名 -p 密碼 -h 主機IP -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 >***.sql(備份1個或多個數(shù)據(jù)庫)

FTP常用指令

open 與FTP服務(wù)器建立連接,例:open 192.168.100.3

user 有權(quán)限登錄FTP服務(wù)器的用戶名和密碼,例:user 用戶名 密碼

vim ftp.sh

#!/bin/bash

ftp -inv << EOF(-i 關(guān)閉交互模式,<

open 192.168.100.3

user 用戶名 密碼

cd 上傳目錄

put 文件名

bye

EOF

sh ftp.sh

vim auto_backup.sh

#!/bin/bash

db_user=""

db_password=""

db_host=""

ftp_user=""

ftp_password=""

ftp_host=""

src_dir=""(本地數(shù)據(jù)庫備份目錄)

dst_dir=""(ftp服務(wù)器目錄)---chown -R 用戶名:組名 目錄(修改目錄權(quán)限)

time_date="`date +%Y%m%d%H%M%S`"

file_name="數(shù)據(jù)庫名_數(shù)據(jù)表名_${time_date}.sql"

function auto_ftp

{

ftp -niv << EOF

open $ftp_host

user $ftp_user?ftp_password

cd $dst_dir

put $1

bye

EOF

}

mysqldump -u"$db_user" -p"$db_password" -h"$db_host" 數(shù)據(jù)庫名 數(shù)據(jù)表名> $src_dir/$file_name && auto ftp?$src_dir/$file_name

sh?auto_backup.sh

#定時備份

crontab -e

*/1 * * * * sh??auto_backup.sh & > /dev/null? (每隔1分鐘備份一次)

#編輯服務(wù)器的定時任務(wù)

crontab -e

#查看服務(wù)器的定時任務(wù)

crontab -l

#crontab的詳細(xì)介紹

more /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

總結(jié)

以上是生活随笔為你收集整理的shell+mysql获取数据库名_shell操作mysql数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。