
mysql
奇妙探险家
浮光跃金,静影沉璧
展开
-
Mysql5.6修改字符集为utf8
在my.ini或my.cnf中的[mysqld]下最后一行加入character-set-server=utf8注意windows下my.ini可能有多个,需要在包含全量内容的my.ini里面修改,通常在ProgramDataMysql下,不是ProgramFile/Mysql5.6下面的那个。检验:show VARIABLES like ‘character%’;除了一个binary外...原创 2020-03-03 10:09:06 · 709 阅读 · 0 评论 -
mysql错误整理
1、ERROR! The server quit without updating PID file (/var/lib/mysql/zx105.pid).修改my.cnf后重启报该错误,可能是在配置中将一些选项设置成了未授权的文件夹,将这些新文件夹授权给mysql组的mysql用户即可sudo chown mysql:mysql -R /usr/mysql-log...原创 2018-07-10 16:52:14 · 160 阅读 · 0 评论 -
mysql、hive常用查询
1、分组汇总并累计,累计问题都要使用不等条件的连接解决 -- 分组汇总并累计hive版(因为hive不支持不等条件的关联,且不在分组键的列必须聚合)select s2.nam,s2.mon,max(s2.sum1),SUM(s3.num) from(SELECT s1.nam,s1.mon,SUM(num) sum1 FROM xzq_temp s1 GROUP BY s1.nam,s1.mon...原创 2018-07-11 10:20:38 · 378 阅读 · 0 评论 -
海量数据迁移经验
1、目标表必须为裸表,即不包含任何索引、触发器、外键限制、自增列等,导入完成后再添加回来2、关闭目标数据库日志,完成后再开启3、使用事务批量提交(1~2万每次)4、如果有多个数据源,使用多线程同时插入。...原创 2018-09-09 12:34:04 · 742 阅读 · 0 评论 -
MySQL仅从.frm和.ibd文件恢复数据
前言MySQL的数据库其相关文件都会存放在安装目录下data文件夹下的同命文件夹中,不同的存储引擎创建的表其文件也不一样,下面来认识下这些数据库文件。db.opt用来记录该库的默认字符集编码和字符集排序规则用的。也...转载 2018-09-17 11:21:57 · 5337 阅读 · 2 评论 -
mysqldump应用
导出表名包含中文的单表(字符集设置非常重要,在windows下,mysqldump接收中文表名时会报couldn't find table错误,即使表本身存在)mysqldump -uroot -proot -P8866 --default-character-set=gb2312 hive c客户信息表_copy > C:\1.sql导出hive库中的存储过程(-R)、事件(-...原创 2019-01-15 16:58:49 · 204 阅读 · 0 评论 -
MySQL的B树索引与索引优化
MySQL的B树索引与索引优化 MySQL的MyISAM、InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题:为什么MySQL等主流数据库选择B+树的索引结构?如何基于索引结构,理解常见的MySQL索引优化思路?为什么索引无法全部装入内存索引结构的选择基于这样一个性质:大数据量时,索引无法全部装入内存。为什么索...转载 2019-03-04 10:19:32 · 165 阅读 · 0 评论 -
mysql 优化记录
1.获取大数据集之后再执行需要索引的操作,一定要使用中间表!drop table if EXISTS temp.csm_temp2;create table temp.csm_temp2 select acct_id,sum(csm) csm from temp.csm_temp GROUP BY acct_id;ALTER table temp.csm_temp2 add INDEX原创 2017-01-09 23:15:37 · 387 阅读 · 0 评论 -
mysql 授权
查看自己的权限:show grants查看用户:select host,user,password from mysql.user授权:GRANT privileges ON databasename.tablename TO 'username'@'%' (此处privileges为权限名)授所有权限:GRANT all privileges ON databasename.原创 2017-11-01 19:53:48 · 305 阅读 · 0 评论 -
oracle、mysql定时任务模板
--1、创建job实体过程------------------------------------------------------------------------------create or replace procedure j --as--begin--insert into a2 values(1, systimestamp);--end;--2、测试job-----转载 2016-12-20 15:37:21 · 421 阅读 · 0 评论 -
cognos通过odbc连接mysql
1、cognos只接受32位驱动,需要自行卸载64位的mysql驱动换成32位版。2、更换驱动后设置dsn,此处有两个关键,一是64位win7中默认的odbc数据源管理器(控制面板中的那个)为64位版,打开后不显示32位的驱动,需要打开C:\Windows\SysWOW64\odbcad32.exe即32位odbc数据源管理器才能设置相应dsn。二是必须设置为系统dsn,dsn中必须填上数据库原创 2016-10-28 15:37:59 · 2266 阅读 · 0 评论 -
mysql用load语句实现简单etl操作
LOAD DATA LOCAL INFILE 'D:\\baidu\\Desktop\\aaa.csv'INTO TABLE test.m CHARACTER SET GBKFIELDS TERMINATED BY ',' ENCLOSED BY ''LINES TERMINATED BY '\r\n' IGNORE 1 LINES(gender,id);如果有主键列和唯一列,则会根原创 2016-12-12 15:29:44 · 2224 阅读 · 0 评论 -
MYSQL动态SQL
set @b='department_big';set @c='其他';set @a=CONCAT('select * from zhixiao_kpi.kpi_acct11 where ',@b,'=? and department_small=\'其他\' limit 10');PREPARE st from @a;EXECUTE st USING @c;1、只有值(字符串或数字原创 2016-12-13 13:32:57 · 1725 阅读 · 0 评论 -
MYSQL存储过程模板
drop PROCEDURE if EXISTS a;delimiter $$create PROCEDURE a (in c int,inout d int,out f int)-- 在例子中c=12,d=10,f未赋值BEGINDECLARE e int;-- 存储过程中声明不需要@set e=d;-- e=10set d=c+10;-- @n=22set f=e;-- ...原创 2016-12-13 14:13:28 · 1197 阅读 · 0 评论 -
mysql插入操作跳过(ignore)、覆盖(replace into)、更新(on duplicate key)
原帖地址:http://www.cnblogs.com/sweet521/p/5730804.html1.insert ignore into当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:INSERT IGNORE INTO books (name) VALUES ('MySQL Manual转载 2017-03-21 13:10:41 · 16496 阅读 · 0 评论 -
MYSQL交换两列+根据表1关联更新表2
update test.n s1LEFT JOIN test.n s2on s1.id=s2.idset s1.`name`=s2.t,s1.t=s2.`name`where s2.t is not null更简单的方法是用中间列暂存:update temp.sset tem=a,a=b,b=tem关联更新与此类似:update test.n s1LEFT JO原创 2016-12-13 15:03:42 · 710 阅读 · 0 评论 -
MYSQL抛出异常+禁止删除触发器、同步插入触发器
DROP TRIGGER IF EXISTS m;CREATE TRIGGER m AFTER DELETE ON test.m FOR EACH ROWBEGINDECLARE msg VARCHAR (255);IF old.scnt = 2 THEN -- old为伪记录占位符,scnt为字段名SET msg = "sc中有记录无法删除";SIGNAL SQLSTATE 'HY...原创 2016-12-13 15:55:25 · 4177 阅读 · 1 评论 -
pandas连接mysql
pandas通过pymysql直接读取mysql库中的表:import pandas as pdimport pymysqla=pymysql.connect(host='000.00.000.000',port=3333,user='aaaaa',passwd='bbbbb',db='ccccc')sql='select %s from %s where month(last_up原创 2016-10-24 17:14:34 · 5938 阅读 · 0 评论