Mysql 常见流水账

mysql 2017-11-03

1.导入:

mysql –default-character-set=UTF8 -uroot -p123456 -P3306 pics < imgconfig.sql

rds 中:

mysql -h rds.host  –default-character-set=UTF8 -uroot -p123456 mjzlweb<mjzlweb.sql

如何让 mysqldump/mysql 导入数据时忽略错误继续执行

mysql -uroot -p123456 -f database < filename.sql
#-f 参数,就是force的意思,忽略错误,强制继续运行

2.导出 :

mysqldump –default-character-set=UTF8 -uroot -p123456 taobao2 –table userinfo|gzip > taobao2_userinfo_20110506.sql.zip
#表的备务,带压缩哦

rds 中:

mysqldump -h rds,host  –default-character-set=UTF8 -uroot -p123456  mjzlweb>mjzlweb.sql
mysqldump –default-character-set=UTF8 -uroot -p123456 taobao2 –database taobao2|gzip > taoba2.sql.zip 
#数据库的备务,带压缩哦 

//解压这个包:

gunzip -c taobao2.sql.zip > taobao2.sql

常见问题:
问题1: mysqldump: Got error: 1066: Not unique table/alias: ‘c3p0testtable’ when using LOCK TABLES
解决办法: dump 里加一个参数 –skip-lock-tables 就可以

导出一条记录(这里是nick 等于 dress 的记录),并且是 insert :

mysqldump -uroot -p111111 databasename –extended-insert=false –table userinfo -w ”nick=’dress’”>in.sql

导出一给定条件的记录(这里是id>100的记录),并且是insert:

mysqldump -uroot -p111111  databaseneame –table tablename -w”id>100″>new.sql

导出 表结构

mysqldump –default-character-set=UTF8 -uroot -p111111 -d database  tables> tables.sql

3.统计:

select sum(payprice) as tail from payrecord;

4.执行指令

mysql -uroot -p123456 -e”use taobao2;select * from userinfo;” >> temp.log

5.创建索引 :

create index collname on tablename(collname);

删除

Drop indexname on tablename;

6.显示当前运行的Query

mysql> show processlist

小记:
用命令可显示出条种状态的sql 和 idnember
show processlist
可用 kill idnember 终止执行。

设置mysql 自动断开连接的时间

set global  wait_timeout=600;set  global interactive_timeout=600;

查看:

show global variables like ‘%timeout%’;

7.查看当前最大连接数:

mysqladmin -uusername -ppassword variables |find “max_con”

8.显示当前状态:

mysql> show status

9.修复表

repair table tablename;

表的数据去重,保留id 最小的一条,其余的删掉:

mysql  –default-character-set=UTF8 -uroot -pxxxxx -e”use tablename;select  CONCAT(‘delete from xx_table where id<>’,min(id),’ and nick=\”‘ ,nick,’\”;’) from xx_table    group  by  nick    having  count(nick) > 1;”>>del.sql

查看 MySQL 数据库中每个表占用的空间大小
如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小

其他字段请参考MySQL的手册,我们只需要了解这几个就足够了。
所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。
SQL:

SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA=’数据库名’ AND TABLE_NAME=’表名’

如何动态开启mysql的慢查询日志记录
在线开启慢查询日志:

mysql > set global slow_query_log=1;
mysql > set global long_query_time=2;
mysql > set global slow_query_log_file=’mysql-slow.log’;

如果不需要记录慢查询了,可以很方便的关闭:

mysql > set global slow_query_log=0;

注意:在5.1.29以前用的是log_slow_queries变量,5.1.29及之后的版本log_slow_queries变量就用slow_query_log变量代替了。slow_query_log指定开启还是关闭,slow_query_log_file指定日志文件filename,long_query_time指定慢查询的阈值。
注意2:long_query_time变量从MySQL 5.1.21开始,可以被设置的最小值为0,且精度可以被设置到微秒级(例如值可以被设置为 1.000002,即1秒又2微秒);而在5.1.21之前的版本,这个变量可以被设置的最小值为1,且只能为整型。

PT 的使用和安装:

wget http://www.percona.com/downloads/percona-toolkit/2.2.4/RPM/percona-toolkit-2.2.4-1.noarch.rpm
yum install -y percona-toolkit-2.2.4-1.noarch.rpm

查看mysql 的慢日志:

pt-query-digest /var/mysql/data/mysql-slow.log

查看test数据库的重复索引和外键使用情况使用如下命令

pt-duplicate-key-checker  –host=localhost –user=root –password=123456  –databases=zzbtrade -S /var/tmp/mysql/mysql.sock

sql 注入特定值

“”()))”()
”))(”)’(
AnD
aND
AnD
aND
AND
/etc/
windows/win
md5(

本文由 伯仁 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论