mysql 备份练习
<?php
$db_name="new";
mysql_connect("localhost","root","123456");
mysql_select_db($db_name);
$tb=mysql_list_tables($db_name);
$sql="";
while($query=mysql_fetch_row($tb)){
$sql="";$table_sql="";
$sql.= get_table_fn($query[0]);
get_table_row($query[0]);
// echo $table_sql."\n";
}
$f=fopen($db_name.".sql","w+");
fwrite($f,$sql);
fclose($f);
//备份所有表SQL语名
function get_table_fn($db_name){
$field="CREATE TABLE `$db_name`( \n";
$query=mysql_query("select * from $db_name");
while($row=mysql_fetch_field($query)){
if($row->not_null===1){$null="DEFAULE NULL";}else{$null="NOT NULL";}
if($row->primary_key===1){$key="primary key";}else{$key="";}
if($row->unsigned===1){$unsig="unsigned";}else{$unsig="";}
$field.="`$row->name` $row->type($row->max_length) $null $key $unsig ,\n";
}
$field.=")\n";
return $field;
}
//备份所有表的数剧
function get_table_row($db_name){
$query=mysql_query("select * from $db_name");
$field="";
$num_rows= mysql_num_rows($query);
$num_field=mysql_num_fields($query);
$table_sqls="";
while($row=mysql_fetch_row($query)){
$r= get_table_fd($num_field,$row);
$table_sqls.="insert into `$db_name` values($r)\n";
}
$f=fopen($db_name.".sql","w+");
fwrite($f,$table_sqls);
fclose($f);
}
//获取每张表的字段值
function get_table_fd($num_field,$row){
$r="";
for($i=0;$i<$num_field;$i++){
$r.= "'$row[$i]',";
}
$r=substr($r, 0, strlen($r)-1);
return $r;
}
?>
相关文档:
在linux下面安装mysql,首相要根据操作系统的版本,选择对应的mysql的版本,官方网站上有非常明确的分类
http://dev.mysql.com/downloads/
在这里我实验的操作系统是redhat linux
mysql 用了两个安装包,一个是server端,一个是client,我用的是rpm包,安装的指令比较简单。
MySQL-server-community-5.1.42-0.rhel4.i38 ......
MySQL索引
MySQL查询优化最重要的当属建立正确的索引,没有索引,面对海量数据,一切的优化纯属空话。什么是索引?索引为什么那么重要呢?这些问题这里就不谈了,还是先写下我首次优化MySQL查询海量数据的心得吧,数据库表类型是MyISAM。
如果简单的一个查询语句,MySQL查询速度还 ......
表设计方面:
1、字段名尽量简化,不要超过18个字符
2、使用尽量小的数据类型,例如:MEDIUMINT比INT少占用25%空间
3、字段类型应尽量避免设置成可变长度,如:VARCHAR、BLOB、TEXT
4、用于比较的不同字段,应设置相同的类型及长度
5、尽可能将字段声明为NOT NULL,并指定DEFAULT
6、主索引尽可能短
7、仅创建真正 ......
查询语句:
SELECT 字段名 from 表名.
排序 order by 要排序的字段名 desc :以倒序查询.
limit 从第几个开始 查找多少个 :查找指定个数.
同时查询多个字段用","隔开.
如查询表里面的所有数据在字段名处填"*".
如只想显示某字段的前几位字符可以使用LEFT函数.
SELECT 字段名,LEFT(字段名,位数),字段名 from 表名.
COU ......
[转 mysql安全设置]
使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:
1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。
2.用set password语句来修改用户的密码,三个步骤,先“mysql -u root”登陆数据库系统,然后“my ......