MYSQL总结 -- 随笔

//allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[System.DateTime]
做反射转换时遇到该问题
mysql连接字符串去掉allow zero datetime=true,否则返回的日期会是MySql.Data.Types.MySqlDateTime类型,而不是DataTime

//////查询返回结果空时间错误
数据库连接字符串中增加
allow zero datetime=true;

//////休眠连接过多,有可能导致“Too many connections”的错误
查看所有连接 show processlist
设置休眠连接超时时间60秒:
my.ini中mysqld节中添加
wait-timeout=60

//////显示创建表的sql语句
show create table 表名

//////显示行号
set @intIndex = 0;
select (@intIndex := @ intIndex  + 1) as RowNum ,* from table;


//////设置字符集
set names 'utf8';
//////.Net调用Mysql存储过程 参数过大或过小
存储过程参数中 varchar (1024)  中间的空格不能有,否则.net的dll无法判断。

//////MySQL数据库innoDB数据分开存储
MySQL数据默认存储在ibdata1文件中。

如果要每张表使用单独的innoDB文件,修改my.ini文件,增加下面配置innodb_file_per_table
然后重启服务


//////Incorrect string value: 有可能是字符串长度不够了
Incorrect string value: '\xE5\xBE\x97\xE4\xBB\xB7...' for column 'Content' at row

1.字符集全部调整为utf8。
2.超出字符串长度。

各字段类型长度
text    2^16-1
mediumtext    2^16-1
longtext    2^32-1


//////Mysql字符串数据插入转义处理
"\"替换为"\\""'"替换为"''"

 

定义变量

DECLARE TMP INT  定义局部变量 作用域begin 到 end 语句块之间

SET   @TMP = 1 定义用户变量

SET   @@TMP = 1 定义全局

 

存储过程/函数

//执行字符串存储过程
DECLARE STRING_SQL LONGTEXT;

SET @TMP = STRING_SQL

PREPARE S1 FROM @TMP

EXECUTE S1;

DEALLOCATE PREPARE S1;

 调用:EXECUTE PORC_XX PARM1,PARM2;

 

创建MYSQL服务

"{mysql目录}/mysqld" --install Service_Name --defaults-file="{mysql目录}\my.ini"

创建数据库备份

mysqldump --quick --host=127.0.0.1 --default-character-set=gbk --lock-tables -R --verbose -- force --port=3307 --user=root --password=root dbName -r "backup_path"

还原数据库

mysql --host=127.0.0.1 --default-character-set=gbk --port=3307 --user=root --password=root dbName<"backup_path"

检测端口号 

netstat -ano

netstat -ano|findstr 3307

posted @ 2013-03-27 16:28  欧西  阅读(297)  评论(0编辑  收藏  举报