Archive for the ‘Mysql’ Category

MySQL日志设置

Thursday, January 6th, 2011

MySQL日志设置

# logs
log-bin=D:/MySQL/logs/mysql-bin

#expire_logs_days = 10
#max_binlog_size = 100M

log=D:/MySQL/logs/mysql.log
log-error=D:/MySQL/logs/error.log

#log-update=D:/MySQL/logs/update.log  未能成功生成

long_query_time=1
log-slow-queries
log-queries-not-using-indexes

Apache+PHP+MySQL环境搭建笔记

Sunday, July 16th, 2006

安装apache1.3.31

傻瓜试安装,一路下一步,安装路径选个C:\

添主机时添localhost

安装php-4.4.2-Win32

释放压缩包内容到apache目录

复制php4ts.dll  php4apache.dll到apache\bin

将php.ini-recommended复制到apache\bin并改名为php.ini

编辑php.ini

display_errors = On

extension_dir = “C:\Apache\php-4.4.2\extensions”

upload_tmp_dir = upload_tmp_dir = C:\Apache\tmp

session.save_path = C:\Apache\tmp

session.use_trans_sid = 1
在客户不支持cookie的时候,session_id可以附在QUERY_STRING后边
,如:abcd.php?a=c&b=d&PHPSESSID=saadafsf24235346asdfsda

编辑httpd.conf

以模块方式运行PHP
在httpd.conf后边加

LoadModule php4_module bin/php4apache.dll
AddType application/x-httpd-php .php .phtml

以 CGI 模式运行PHP
ScriptAlias /php/ “c:/apache/php-4.4.2/”
AddType application/x-httpd-php .php
Action application/x-httpd-php “/php-4.4.2/php.exe”

索引文件
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.cgi index.pl
</IfModule>

mysql-4.0.17-nt安装时运行我的那个BAT就OK了

MySQL常用命令

Saturday, December 17th, 2005

一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
三、增加新用户。

(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@”%” Identified by “abc”;
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;

一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。

二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;

三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values(”,’glchengang’,'深圳一中’,’1976-10-10′);
insert into teacher values(”,’jack’,'深圳一中’,’1975-12-23′);

注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。 (4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录mysqlbin,然后键入以下命令:
mysql -uroot -p密码 < c:school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。

四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用n来代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、数据传入命令 load data local infile “文件名” into table 表名;
注意:你最好将文件复制到mysqlbin目录下,并且要先用use命令打表所在的库 。

五、备份数据库:(命令在DOS的mysqlbin目录下执行)
mysqldump –opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。

一个未完成的MYSQL管理程序perl gui

Wednesday, March 23rd, 2005

#!/usr/bin/perl

use strict;
use warnings;
use Tk;
use Tk::HList;
use Tk::Adjuster;
use DBI;
use encoding ‘euc-cn’;

my ($login,$server,$username,$password,$database,$db,$sql,$query,$percent_done,@tmp);
my $mw = MainWindow->new(-title=>”Mysql Easy”);
$mw->minsize(600,400);
#$mw->resizable(0,0);

#frame
my $menubar=$mw->Frame(-relief=>’groove’, -borderwidth=>’2′,)
->pack(-side=>’top’, -fill=>’x');
my $bottom=$mw->Frame(-relief=>’groove’, -borderwidth=>’1′,)
->pack(-side=>’bottom’, -fill=>’x');
my $left=$mw->Frame(-relief=>’groove’, -borderwidth=>’0′,)
->pack(-side=>’left’, -fill=>’both’);
my $aj = $mw->Adjuster(-widget => $left, -side => ‘left’)
->pack(-side=>’left’, -fill=>’y');
my $right=$mw->Frame(-relief=>’groove’, -borderwidth=>’1′,)
->pack(-side=>’right’, -fill=>’both’,-expand=>’1′);
#menu
my $mb_conn=$menubar->Menubutton(-text=>’Connect’)->pack(-side =>’left’);
$mb_conn->command(-label=>’Connect’, -command=> \&login);
$mb_conn->command(-label=>’Disconnect’, -command=> \&saveDBM);
$mb_conn->separator();
$mb_conn->command(-label=>’Exit’, -command=> sub{ exit; });

my $mb_view=$menubar->Menubutton(-text=>’View’)->pack(-side=>’left’);
$mb_view->command(-label=>’Undo’, -command=> \&undo);
$mb_view->command(-label=>’Find’, -command=> \&findKey);

my $mb_edit=$menubar->Menubutton(-text=>’Edit’)->pack(-side=>’left’);
$mb_edit->command(-label=>’About DBMedit’, -command=> \&about);

my $mb_sqlc=$menubar->Menubutton(-text=>’SQL’)->pack(-side=>’left’);
$mb_sqlc->command(-label=>’SQL_EXEC’, -command=> \&about);

my $mb_help=$menubar->Menubutton(-text=>’Help’)->pack(-side=>’left’);
$mb_help->command(-label=>’About DBMedit’, -command=> \&about);
#HList
my $datalist = $left->Scrolled(“HList”,-selectmode=>’multiple’,-highlightthickness=>0,
-scrollbars=>’e',-height=>8,-header=>1,-background=>’white’,-command=>\&showtables)
->pack(-fill=>’x');
$datalist->header(‘create’, 0, -text=> ‘database :’);
my $tablelist = $left->Scrolled(“HList”,-selectmode=>’multiple’,-highlightthickness=>0,
-scrollbars=>’e',-header=>1,-background=>’white’,-command=>\&viewdata)
->pack(-fill=>’both’,-expand=>’1′);
$tablelist->header(‘create’, 0, -text=> ‘table :’);
my $list = $right->Scrolled(“HList”,-selectmode=>’multiple’,-highlightthickness=>0,
-scrollbars=>’se’,-head=>1,-columns=>7,-background=>’white’,-command=>\&showlist)
->pack(-fill=>’both’,-expand=>’1′);

my @headers = (“Field”,”Type”,”Null”,”Key”,”Default”,”Extra”); #标题
foreach my $x(0..6){
$list->header(‘create’,$x,-text=> $headers[$x],);
}
#foot
my $foot = $bottom->Label(-text=>”登陆先…”)->pack(-side=>’left’);
MainLoop;

sub login {
$login=$mw->Toplevel(-title=> ‘Login’);
$login->resizable(0,0);
$login->Label(-text=>’Host:’)->grid(-row=> 2, -column=> 1, -sticky=> ‘w’);
$server=$login->Entry()->grid(-row=>2, -column=> 2);
$login->Label(-text=>’Username:’)->grid(-row=> 3, -column=> 1, -sticky=> ‘w’);
$username=$login->Entry()->grid(-row=>3, -column=> 2);
$login->Label(-text=>’Password:’)->grid(-row=> 4, -column=> 1, -sticky=> ‘w’);
$password=$login->Entry(-show=> ‘*’)->grid(-row=>4, -column=> 2);
$login->Label(-text=>’Database:’)->grid(-row=> 5, -column=> 1, -sticky=> ‘w’);
$database=$login->Entry()->grid(-row=>5, -column=> 2);

my $connect=$login->Button(-text=> ‘Connect’, -command=> \&connect)
->grid(-row=>6, -column=> 1, -columnspan=> 2, -sticky=> ‘ew’);
$login->Button(-text=> ‘Quit’, -command=> sub{ $login->destroy; })
->grid(-row=> 7, -column=> 1, -columnspan=> 2, -sticky=> ‘ew’);
$server->insert(0,”localhost”);
$username->insert(0,”root”);
$password->insert(0,”123qwe”);
$database->insert(0,”mysql”);
}
sub connect{
my $hostname = $server->get;
my $username = $username->get;
my $password = $password->get;
my $database = $database->get;

$db = DBI->connect(“DBI:mysql:$database”,$username,$password);
if ($DBI::errstr){
$login->messageBox(-type=>”OK”,-title=>”ERROR”,-message=>”$DBI::errstr”,-icon=>”error”);
}else{
$sql = qq{show databases};
$query = $db->prepare($sql);

$query->execute();

my $result;
while ($result = $query->fetchrow) {
$datalist->add($result, -text=>$result);
}
$query->finish();
$login->destroy;
}
}

sub showtables{
my @tablename = $datalist->selectionGet();
$sql = qq{use $tablename[0]};
$query = $db->prepare($sql);
$query->execute();
$query->finish();
$tablelist->delete(‘all’);  #清除TABLES列表
$sql = qq{show tables};
$query = $db->prepare($sql);
$query->execute();
my $result;
while ($result = $query->fetchrow) {
$tablelist->add($result, -text=>$result);
}
$query->finish();
}

sub viewdata{
$list->delete(‘all’);  #清除LIST列表
@tmp =();
my @viewname = $tablelist->selectionGet();
$sql = qq{show columns from $viewname[0]};
$query = $db->prepare($sql);
$query->execute();
my @result;
while (@result = $query->fetchrow) {
push(@tmp,[@result]);
}
#additem
for my $index (0..$#tmp) {
$list->add($index);
for my $textin (0..scalar(@{$tmp[$index]}-1)) {
$list->itemCreate($index, $textin,-text => $tmp[$index]->[$textin]);
}
}
$query->finish();
}

sub showlist{
my @listindex = $list->selectionGet;
my $listedit=$mw->Toplevel(-title=> ‘Edit’);
$listedit->resizable(0,0);
$listedit->Label(-text=>’Field :’)->grid(-row=> 1, -column=> 1, -sticky=> ‘w’);
$listedit->Label(-text=>’Type :’)->grid(-row=> 1, -column=> 2, -sticky=> ‘w’);
$listedit->Label(-text=>’Null :’)->grid(-row=> 1, -column=> 3, -sticky=> ‘w’);
$listedit->Label(-text=>’Key :’)->grid(-row=> 1, -column=> 4, -sticky=> ‘w’);
$listedit->Label(-text=>’Default :’)->grid(-row=> 1, -column=> 5, -sticky=> ‘w’);
$listedit->Label(-text=>’Extra :’)->grid(-row=> 1, -column=> 6, -sticky=> ‘w’);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[0])
->grid(-row=>2, -column=> 1);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[1])
->grid(-row=>2, -column=> 2);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[2])
->grid(-row=>2, -column=> 3);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[3])
->grid(-row=>2, -column=> 4);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[4])
->grid(-row=>2, -column=> 5);
$server=$listedit->Entry(-text=>$tmp[$listindex[0]]->[5])
->grid(-row=>2, -column=> 6);
$listedit->Button(-text=>’OK’,-command=>sub{ $listedit->destroy; })
->grid(-row=>3,-column=>5,-sticky=> ‘ew’);
$listedit->Button(-text=>’Cancel’,-command=>sub{ $listedit->destroy; })
->grid(-row=>3,-column=>6,-sticky=> ‘ew’);
}

sub about {
my $about=$mw->messageBox(-type=>’OK’, -title=>’About..’,
-message=>”Mysql Easy by jondy \n QQ:222411″);
}