sh脚本操作mysql数据库,sh脚本写入
文章目录:
- 1、Mysql是.sh语言编写的脚本。执行后提示没有命令。
- 2、Linux下如何用shell脚本定期备份mysql数据库
- 3.2.Mysql自动安装8.0 Shell脚本
- 4、mysql shell命令中sql命令行的执行
mysql是一个用.sh语言编写的脚本。执行后提示没有命令
?这是一个 SQL 脚本如果不存在则创建表 test_sql(id int(10),name varchar(20));
insert into test_sql values(1,'dinner');
select * from test_sql ;
之后的shell脚本非常容易创建、插入和查询。内容如下
#!/bin/bash #这是执行SQL的脚本。只需输入数据库表和 SQL 文件名
name=$1
file_name=$2
cd /opt/lampp/bin ./mysql -uroot -p123456 EOF
use ${name }; source ${filename};
EOF
./mysql -uroot -p123456 命令进入mysql。前面的路径可以改成自己的绝对路径
EOF EOF 中间可以写任意mysql脚本
其中,如果要执行某些.sql命令,可以直接使用源脚本。 sql 执行脚本上面的命令。这里我们使用源sql_file.sql
。另外,如果需要执行mysql中的shell脚本
,可以在EOF中执行。/ mysql -uroot -p123456EOF \! sh shell.sh EOF
转发吧! \ +Linux中执行的shell命令可以

Linux如何用shell脚本定期备份mysql数据库
?所有超过3个月的备份数据;3,删除7天以上的备份数据,并保留3个月内的
10、
20、
30。 † BAK/`日期
+ %Y%m%d`.sql
查找
/data/dbdata/mysqlbak/
-mtime
+7
-名称
'.*[1-9] '
-exec
rm
-rf
{}
\;
查找
/data/dbdata/mysqlbak/
-mtime
+ 92
-名称
'*.sql'
-exec
rm
- rf
{}
\;
\;
\;
#计划任务 –e
4
*
*
*
/data/dbdata/ backup_mysql.sh
2。 Mysql自动安装8.0 Shell脚本
如果您觉得文字对您有用,请给个小费,谢谢。
新建执行脚本:mysql_install.sh,并添加执行权限
#!/bin/bash
#zhouyihua V0.1 2021.07.08
#For centos. 0.2
# 添加 DNS
echo "------------ 添加 DNS --------"
echo "nameserver 8.8.8.8" /etc/resolv.conf
#stop 防火墙
systemctl 停止防火墙
if [ $? -ne 0];然后
echo "防火墙关闭失败"
else
echo "防火墙关闭成功"
fi
#下载mysql yum源
wget ymivyms我的源l80 -community-release -el7-3.noarch.rpm
#enable 5.7
#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community .repo
#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community.repo
#disable 8.0
#sed -i ' 28s/enabled= 1/enabled=0/g' /etc/yum.repos.d/mysql-community.repo
#安装 mysql
yum -y 禁用模块 mysql
yumb -y 删除 mariadb 库
yum install -y mysql-community-server
#config mysql
echo "------------ 配置 my.cnf -----------"
sed -i '/\[mysqld\]/a\lower_case_table_names=1' /etc/my.cnf
sed -i '/\[mysqld\]/a\skip-grant-tables' /etc /my.cnf cnf
#start mysql
echo "----------启动mysql服务----------"
systemctl start mysqld.service
mysql -uroot -p123456 EOF
mysql 使用;
更新用户池authentication_string =''其中user ='root';
刷新权限;
ALTER用户'root'@'localhost'IDENTIFY'?CZJh8JWxvH';
“EOF-”---- ---- 在 my.cnf 中注释跳过表 ----------"
sed -i 's/skip-grant-tables/\#skip-grant-tables/ g' /etc/ my.cnf
echo "--------- 重启 mysql 服务 ----------"
systemctl restart mysqld.service
echo " --- --- ---- 授予所有权限 ----------"
mysql -uroot -p'Oracle1234!@#$' --connect-expired-password -e "alter user 'root'@' localhost' 标识为 'Oracle1234!@#$';"
mysql -u root -p'Oracle1234!@#$' EOF
使用 mysql;
创建用户 'maxkey' @' %' 标识为: 'Oracle1234!@#$';
将 *.* 上的所有内容授予 'maxkey'@'%';
EOF
参考:
1. use mysql
2. update user setauthentication_string='' where user='root' ; 如果该字段有值,先将其设置为空
3. 刷新权限 更新权限表
4. ALTER user 'root'@'localhost' IDENTIFIED by 'Tianya1234' 更改root密码
参考:
在mysql shell命令中执行sql命令行
本文介绍如何使用 MySQL 8.0 shell Util 子模块的两个导入函数:importTable/import_table(JS 和 python 版本名称差异)和 importJson/import_json。
其中import_table通过传统MySQL协议进行通信,Import_json通过X插件协议进行通信。 MySQL 始终提供用于加载数据的 infile SQL 命令(单线程)和相应的 mysqlimport(多线程)可执行文件。
例如,我将100W个样本数据导入到ytt.tl1表中,花了24秒。这已经是默认情况下最快的 MySQL 导入了。分析: 现在让我们看一下 mysqlimport 工具的更新版本,即 mysqlshell 实用程序。
在使用这两个工具之前,您必须暂时启用local_infile。 1. import_table 创建到端口 3306 的新连接。这里我切换到python模式并删除示例表Ytt.tl1。 Import_table 有两个参数。第一个参数指定导入文件的路径,第二个参数指定导入格式、并发度等相关设置。数量等定义文件路径(参数1)指定设置(参数2)执行导入:花费不到17秒,比传统的mysqlimport快得多。
上面我们专门指定了字段分隔符,但是有没有具体的组合格式呢?答案是肯定的。选项 dialect 可以指定以下格式:csv、tsv、json、csv-unix。那么上面的导入就可以更简单了。我们可以更改 y_options1 变量的定义,导入时间几乎相同。这里需要注意的是方言选项的优先级比较低。例如,添加 'linesTermminateBy':'\r\n' 将覆盖您自己的 '\n'。
dialect选项还有一个可选的json值,可以直接将json结果导入到文档表中。例如,我创建一个新的 tl1_json 表并重新定义文件和导入选项。导入 JSON 数据也相当快,耗时不到 24 秒。要导入 JSON 数据,您需要提及与 X 插件通信的 import_json 工具。 2. imort_json 我们切换到mysqlx端口。 import_json 参数与 Import_table 参数类似。我在这里更改选项。我在手册中没有看到多线程选项,所以35秒的单线程运行速度有点慢。查看刚刚导入的数据。 import_json不仅可以导入Json数据,更重要的是可以在BSON和JSON之间无缝转换。有兴趣的可以去TRY。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
