shell 中调用 mysql 操作
#!/bin/bash
#删除100个数据库中的1000个表的过期数据
DBHOST="127.0.0.1"
DBPWD="pwd"
DBUSER="root"
MYSQLBIN="/usr/local/mysql/bin/mysql"
for((dbindex = 0;dbindex < 100;dbindex++))
do
for((tabindex = 0;tabindex < 10;tabindex++))
do
if [ $dbindex -lt 10 ]; then
del="delete from gs_map_0${dbindex}.t_${tabindex}";
else
del="delete from gs_map_${dbindex}.t_${tabindex}";
fi
del=${del}" where Fcreate_time < UNIX_TIMESTAMP() - 86400"
bin=`${MYSQLBIN} -u${DBUSER} -p${DBPWD} -h${DBHOST} -e"${del}"`
$bin
#echo ${bin}
#echo $del >>/tmp/aaa.txt
sleep 5
done
done
#crontab configure
# 0 3 * * * clear.sh > /dev/null 2>&1
相关文档:
先用root登陆mysql -u root -p
mysql>show databases;
mysql>use mysql;
update user set password=password('你想设置的密码')
where user='root'; ......
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1. 字符串截取:left(str, length)
mysql> select left('sqlstudy.com', 3);+-------------------------+| left('sqlstudy.com', 3) | ......
先按照下面的表结构创建mysql_order_by_test数据表,我们用实例一点一点告诉你,MySQL order by的用法。
ORDER BY uid ASC
按照uid正序查询数据,也就是按照uid从小到大排列
ORDER BY uid DESC
按照uid逆序查询数据,也就是按照uid从大到小排列
我们来看
SELECT * from mysql_order_by_test OR ......
1.DATE_FORMAT('2010-05-15 15:47:36','%H:%i:%s') -> 结果:15:47:36
将日期格式根据条件不同转换成所需要的日期、时间格式
2.timediff('23:40:00', ' 18:30:00') -> 结果:05:10:00
......
显示、设置自动提交 show variable like 'autocommit' set autocommit=1 or 0
设置日志:
在/etc/mysql/my.cnf中设置如下可再slow.log中输出运行时间超过一秒的sql语句
[mysqld]
log-slow-queries = /tmp/slow.log
long_query_time = 1
设置日志输出运行超过1秒的sql语句 set global long_query_ti ......