shell脚本批量扫描文档里面的数据库名创建
时间: 2023-10-10 14:08:17 浏览: 50
表的SQL语句要怎么写?
这是一个技术问题,可以回答。你可以使用一个for循环遍历文档中每一行 SQL 语句,使用正则表达式匹配出 DDL(Data Definition Language)语句中的数据库名和表名,再使用 Shell 变量和字符串拼接的方式动态生成创建表的 SQL 语句并执行即可。当然,具体操作还需要根据实际情况进行调整。
相关问题
通过Shell脚本批量创建服务器上的MySQL数据库账号
我可以帮您回答这个问题。要批量创建MySQL数据库账号,可以在Shell脚本中编写循环语句,依次创建账号并设置对应的权限。以下是一个示例代码:
```
#!/bin/bash
# 数据库信息
db_host="localhost"
db_user="root"
db_password="password"
# 待创建账号列表
accounts=(account1 account2 account3)
for account in ${accounts[@]}
do
# 创建账号
mysql -h ${db_host} -u ${db_user} -p${db_password} -e "CREATE USER '${account}'@'%' IDENTIFIED BY 'password'"
# 设置权限
mysql -h ${db_host} -u ${db_user} -p${db_password} -e "GRANT ALL PRIVILEGES ON *.* TO '${account}'@'%'"
done
echo "MySQL账号创建完成"
```
该脚本使用了循环语句,对待创建账号列表中的每个账号进行创建和权限设置操作。具体来说,先在for循环中遍历待创建账号列表,然后分别执行两行mysql命令,第一行创建账号,第二行设置账号权限。
当然,实际情况中,您需要根据具体情况修改脚本中的参数和操作细节。
mysql批量创建数据库并导入数据的shell脚本
#!/bin/bash
#批量创建数据库并导入数据的脚本
#定义变量
HOSTNAME="localhost" #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="123456"
CHARSET="utf8mb4"
DBNAMES=("db1" "db2" "db3") #数据库名数组
SQLFILES=("db1.sql" "db2.sql" "db3.sql") #对应的sql文件名数组
#遍历数组,逐个创建数据库并导入数据
for ((i=0;i<${#DBNAMES[@]};i++))
do
#创建数据库
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} --default-character-set=${CHARSET} -e "CREATE DATABASE IF NOT EXISTS ${DBNAMES[i]}"
#导入数据
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} --default-character-set=${CHARSET} ${DBNAMES[i]} < ${SQLFILES[i]}
done
echo "All databases have been created and data have been imported successfully!"