只导创建表的结构:
bin/mysqldump -d --add-drop-database=FALSE --add-drop-table=FALSE -usosodb -p sosodb TEST > /tmp/test.sql
只导单行的INSERT语句:
bin/mysqldump --extended-insert=FALSE --add-drop-database=FALSE --add-drop-table=FALSE --create-options=FALSE -t --add-locks=FALSE -usosodb -p sosodb TEST > /tmp/test.sql
......
在工作中碰到一个Mysql字段更新问题
在custom表中有一个tariffurl的值中有如下情况:
uploadfiles ariff2007031172720306698.jpg以及uploadfiles ariff2007031172720306690.jpg;uploadfiles ariff2007031172720306691.jpg形式
要更改成uploadfiles/tariff/200703/1172720306698.jpg及 uploadfiles/tariff/200703/1172720306690.jpg;uploadfiles/tariff200703/1172720306691.jpg 形式
可以综合利用substring函数和cancat函数来实现,步骤如下:
1、 update custom set tariffurl=concat('uploadfiles/tariff/200703/',substring(tariffurl,24)) where tariffurl like 'uploadfiles ariff200703%'
2、update custom set tariffurl=concat(substring(tariffurl,1,55),'/tariff/200703/',substring(tariffurl,68))
where tariffurl like 'uploadfiles/tariff/200703/%' and tariffurl like'%;uploadfiles %'
substring(filed,m):截取filed字段从第m个字符开始到结束的字符串;
substring(filed,m,n):截取filed字段从第m个字符开始的长度为n的字符串;<-------MSSQL
cancat(string1,sting2,……):将string1、string2, ……字符串连接起来。 ......
Perl中DBI、DBD::mysql模块的安装
使用的软件版本
DBI-1.604.tar.gz
DBD-mysql-4.006.tar.gz
建议使用以上版本搭配,否则可能连接mysql错误
一、DBI的安装
wget http://www.cpan.org/modules/by-module/DBD/DBI-1.604.tar.gz
tar -zxvf DBI-1.604.tar.gz
cd DBI-1.604
perl Makefile.PL
make
make test
make install
二、DBD的安装
注意mysql的环境变量,若没有则用 添加/usr/local/mysql/bin到环境变量PATH中
PATH=/usr/local/mysql/bin:$PATH;
export PATH (mysql的安装路径根据实际情况填写)
wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.006.tar.gz
tar -zxvf DBD-mysql-4.006.tar.gz
cd DBD-mysql-4.006
perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
make
make test
make install
三、其它可能发生的状况
如果运行某个调用MYSQL数据库的程序时出现如下系统提示:
install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.6.1/i386-lin ......
首先需要查看一下创建函数的功能是否开启:
mysql> show variables like '%func%';
+-----------------------------------------+-------+
| Variable_name | Value |
+-----------------------------------------+-------+
| log_bin_trust_function_creators | ON |
+-----------------------------------------+-------+
1 row in set (0.02 sec)
如果Value处值为OFF,则需将其开启。
mysql> set global log_bin_trust_function_creators=1;
创建函数时,先选择数据库,
mysql> use xxx;
Database changed
delimiter $$是设置 $$为命令终止符号,代替分号,因为分号在begin...end中会用到;
mysql> delimiter $$
CREATE FUNCTION first_func(param1 varchar(5),parmam2 varchar(5),param3 varchar(10))
RETURNS TINYINT
BEGIN
RETURN 1;
END
函数创建成功后需恢复分号为命令终止符号。
mysql> delimiter ;
测试:
mysql> ......
在近期的项目维护工作中,时常出现主键重复的异常。经过一系列资料的查询之后,发现时hibernate映射文件配置问题。
mysql提供主键“自动增量”的配置,指定该类型的主键,mysql能够自动加一。
在hibernate映射文件中,关于主键的配置不能是
<generator class="increment"></generator>,配置为increment的话,自增是由hibernate控制,有可能出现重复的主键。
如果要使用mysql自己的自增1主键的话,需要将主键配置为:
<generator class="native"></generator>
或<generator class="identity"></generator>
问题解决! ......
1.查看MySQL分区表的执行计划:
注意:对MySQL分区表按分区查询,不用像Oracle那样,在SQL中添加“PARTITION”字符串。
提示:使用分区功能之后,相关查询最好都用EXPLAIN PARTITIONS过一遍,确认分区是否生效。例如:
EXPLAIN PARTITIONS SELECT * from tab_test WHERE created = '2008-01-02';
2.查看MySQL普通表的执行计划
例如:
EXPLAIN SELECT * from tab_test WHERE created = '2008-01-02';
3.参考:
A deep look at MySQL 5.5 partitioning enhancements ......