想飞的鱼 Java Dev Engineer

数据库基本语句

2017-03-10

MYSQL explain详解

帮助分析mysql 查询效率

参考链接http://blog.csdn.net/zhuxineli/article/details/14455029

#too many connections 数据库连接用完了,不能再连接 默认151(自己查看的), 可以设置,连接数可以用 show processlist; 查看结果数量, kill id 删除指定

也可以  kill  通过下面这个sql 批量kill 
SELECT   CONCAT('KILL ',id,';')    FROM information_schema.PROCESSLIST t WHERE t.STATE LIKE 'Sending%';

修改MySQL配置文件/etc/my.cnf,

设置成max_connections=1000,wait_timeout=5。如果没有此项设置可以自行添加,修改后重启MySQL服务即可

查看最大连接数: show variables like ‘%max_connections%’;

查看连接数 show variables like ‘%timeout%’;

set global max_connections=1000。

这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。

​ #mysql查询大小限制

mysql 查询默认1024大小(可能版本不同有不同),如果大于报错

set global max_allowed_packet = 1024*100;

show variables like ‘%max_allowed_packet%’;

mysql 数据导出

导出整个库

mysqldump -uroot -p db > db.sql

导出表结构

mysqldump -h localhost -uroot -proot  -d push_new_db > push_db_db.sql

mysql数据导入

#进入mysql目标库里面
source D://db.sql
mysql -uroot -p db < db.sql

常用命令

登录数据库

mysql -h localhost -uroot -p

导出数据库

mysqldump -uroot -p db > db.sql

导入数据库

mysql -uroot -p db < db.sql
// or
mysql -uroot -p db -e "source /path/to/db.sql"

开启远程登录

grant all privileges on ss.* to 'root'@'%' indentified by 'passoword' with grant option;
// or 
update user set Host="%" and User="root"
// 注意%是不包含localhost的
flush privileges;

创建用户

CREATE USER 'test'@'localhost' IDENTIFIED BY 'password';
grant all privileges on *.* to test@'localhost' identified by 'test';

创建表

CREATE SCHEMA testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

赋予数据库权限

GRANT ALL ON testdb.* TO 'test'@'localhost';

表追加插入

INSERT INTO 表1 SELECT * FROM 表2   
注意主键冲突,表结构是否一致

IP地址查询

查询有多少用户ip查询数据库

-- 1.查询有多少连接数据库
SHOW  PROCESSLIST ;

-- 2.查询有多少连接数据库中的 rds_db库
select * from information_schema.processlist where user='rds_admin_001' and db='rds_db' ORDER BY host;
-- 3.分组查询各个ip的连接数量
select LEFT(host,15),count(*) from information_schema.processlist where user='rds_admin_001' and db='rds_db' group BY LEFT(host,13);

上一篇 Linux 使用

下一篇 git 常用命令

Comments

Content