MYSQL初学者自己轻松安装mysql使用教程指南


  内容提要:有很多朋友虽然安装好了mysql但却不知如何使用它这篇文章中我就从连接mysql

  修改密码、增加用户等方面来学习一些mysql常用命令。

  一、连接mysql

  格式:mysql-h主机地址 -u用户名 p用户密码

  1例1连接到本机上的mysql

  首先在打开DOS窗口,然后进入目录mysqli

  有很多朋友虽然安装好了mysql但却不知如何使用它这篇文章中我就从连接mysql

  修改密码、增加用户等方面来学习一些mysql常用命令。

  一、连接mysql

  格式:mysql-h主机地址 -u用户名 p用户密码

  1例1连接到本机上的mysql

  首先在打开DOS窗口,然后进入目录mysqlin再键入命令mysql-uroot-p回

  车后提示你输密码,如果刚安装好mysql超级用户root没有密码的故直接回

  车即可进入到mysql中了mysql提示符是mysql>

  2例2连接到远程主机上的mysql假设远程主机的IP为:110.110.110.110用户

  名为root,密码为abcd123则键入以下命令:

  mysql-h110.110.110.110-uroot-pabcd123

  注:u与root可以不必加空格,其它也一样)

  3退出mysql命令:exit回车)

  二、修改密码。

  格式:mysqladmin-u用户名 -p旧密码 password新密码

  1例1给root加个密码ab12首先在DOS下进入目录mysqlbin然后键入以下命令

  mysqladmin-urootpasswordab12

  注:因为开始时root没有密码,所以-p旧密码一项就可以省略了

  2例2再将root密码改为djg345

  mysqladmin-uroot-pab12passworddjg345

  另一种方法:

  shell>mysql-uroot-p

  mysql>SETPASSWORDFORroot=PASSWORD"root";

  三、增加新用户。注意:和上面不同,下面的因为是mysql环境中的命令,所以后面都带

  一个分号作为命令结束符)

  格式:grantselecton数据库.*to用户名@登录主机 identifiby"密码"

  例1增加一个用户test1密码为abc让他可以在任何主机上登录,并对所有数据库有

  查询、拔出、修改、删除的权限。首先用以root用户连入mysql然后键入以下命

  令:

  grantselect,insert,update,deleton*.*totest1@"%"Identified

  bi"abc";

  但例1增加的用户是十分危险的想如某个人知道test1密码,那么他就可以在

  internet上的任何一台电脑上登录你mysql数据库并对你数据可以为所欲为了

  解决方法见例2

  例2增加一个用户test2密码为abc,让其只可以在localhost上登录,并可以对数据库

  mydb进行查询、拔出、修改、删除的操作(localhost指本地主机,即mysql数据

  库所在那台主机)这样用户即使用知道test2密码,也无法从internet上直

  接访问数据库,只能通过mysql主机上的web页来访问了

  grantselect,insert,update,deletonmydb.*totest2@localhost

  identifiby"abc";

  如果你不想test2有密码,可以再打一个命令将密码消掉。

  grantselect,insert,update,deletonmydb.*totest2@localhost

  identifiby"";

  有关数据库方面的操作。注意:必需首先登录到mysql中,以下操作都是mysql提

  示符下进行的而且每个命令以分号结束。

  一、操作技巧

  1如果你打命令时,回车后发现忘记加分号,无须重打一遍命令,只要打个分号回

  车就可以了也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束

  标志就OK

  2可以使用光标上下键调出以前的命令。但以前我用过的一个mysql旧版本不支持。

  现在用的mysql-3.23.27-beta-win

  二、显示命令

  1显示数据库列表。

  showdatabases;

  刚开始时才两个数据库:mysql和testmysql库很重要它里面有mysql系统信息,

  改密码和新增用户,实际上就是用这个库进行操作。

  2显示库中的数据表:

  usemysql打开库,学过FOXBASE一定不会陌生吧

  showtables;

  3显示数据表的结构:

  describ表名;

  4建库:

  creatdatabas库名;

  5建表:

  use库名;

  creattabl表名(字段设定列表)

  6删库和删表:

  dropdatabas库名;

  droptabl表名;

  7将表中记录清空:

  deletfrom表名;

  8显示表中的记录:

  select*from表名;

  三、一个建库和建表以及插入数据的实例

  dropdatabasifexistschool;//如果存在SCHOOL则删除

  creatdatabasschool;//建立库SCHOOL

  useschool;//打开库SCHOOL

  creattablteacher//建立表TEACHER

  idint3auto_incrnotnullprimarikey,

  namchar10notnull,

  addressvarchar50default'深圳',

  yeardate

  ;//建表结束

  //以下为插入字段

  insertintoteachervalu'','glchengang','深圳一中','1976-10-10';

  insertintoteachervalu'','jack','深圳一中','1975-12-23';

  注:建表中

  1将ID设为长度为3数字字段:int3并让它每个记录自动加一:auto_incr

  并不能为空:notnull而且让它成为主字段primarikey

  2将NAME设为长度为10字符字段

  3将ADDRESS设为长度50字符字段,而且缺省值为深圳。varchar和char有什么区别

  呢,只有等以后的文章再说了

  4将YEAR设为日期字段。

  如果你mysql提示符键入上面的命令也可以,但不方便调试。可以将以上命令

  原样写入一个文本文件中假设为school.sql然后复制到c:下,并在DOS状态进入目录

  mysqlin然后键入以下命令:

  mysql-uroot-p密码 <c:school.sql< p="">

  如果胜利,空出一行无任何显示;如有错误,会有提示。以上命令已经调试,

  只要将//注释去掉即可使用)

  四、将文本数据转到数据库中

  1文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

  3rose深圳二中 1976-10-10

  4mike深圳一中 1975-12-23

  2数据传入命令loaddatalocalinfil"文件名"intotabl表名;

  注意:最好将文件复制到mysqlin目录下,并且要先用us命令选表所在库。

  五、导出和导入数据:命令在DOSmysqlin目录下执行)

  导出表

  mysqldump--optschool>school.sql

  注释:将数据库school中的表全部备份到school.sql文件,school.sql一个文本文件,

  文件名任取,打开看看你会有新发

  现。

  mysqldump--optschoolteacherstudent>school.teacher.student.sql

  注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文

  件,school.teacher.student.sql一个文本文件,文件名任取,打开看看你会有新发现。

  导入表

  mysql

  mysql>crdatabasschool;

  mysql>usschool;

  mysql>sourcschool.sql;

  或将school.sql换为school.teacher.sql/school.teacher.student.sql

  导出数据库

  mysqldump--databasdb1db2>db1.db2.sql

  注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql一个文本文件,文件名

  任取,打开看看你会有新发现。

  举个例子:

  mysqldump-hhost-uuser-ppass--databasdbname>file.dump

  就是把host上的以名字user口令pass数据库dbname导入到文件file.dump中。

  导入数据库

  mysql<db1.db2.sql< p="">

  复制数据库

  mysqldump--all-databas>all-databases.sql

  注释:将所有数据库备份到all-databases.sql文件,all-databases.sql一个文本文件,

  文件名任取。

  导入数据库

  mysql

  mysql>dropdatabasa;

  mysql>dropdatabasb;

  mysql>dropdatabasc;

  ...

  mysql>sourcall-databases.sql;或exit退出mysql后 mysql<all-databases.sql< p="">

  后记:

  其实mysql对数据库的操作与其它SQL类数据库大同小异,您最好找本将SQL书看

  看。这里只介绍一些基本的其实我也就只懂这些了呵呵。

  最好的mysql教程还是"晏子"译的"mysql中文参考手册"不只免费,每个相关网站都有

  下载,而且它最权威的可惜不象"PHP4中文手册"那样是chm格式,查找函数命令的

  时候不太方便。

  3.打开数据库:usdbname

  显示所有数据库:showdatabases;

  显示数据库mysql中所有的表:先usmysql然后showtables;

  显示表的列信息:describuser;显示表mysql数据库中user表的信息)

  4.创立一个可以从任何地方连接服务器的一个完全的超级用户,但是必需使用一个口令someth做这个

  GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'something'WITHGRANTOPTION;

  GRANTALLPRIVILEGESON*.*TOmonty@"%"IDENTIFIEDBY'something'WITHGRANTOPTION;

  5.删除授权:

  REVOKEALLPRIVILEGESON*.*FROMroot@"%";

  USEmysql;

  DELETEFROMuserWHEREUser="root"andHost="%";

  FLUSHPRIVILEGES;

  6.创立一个用户custom特定客户端weiqiong.com登录,可访问特定数据库bankaccount

  mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONbankaccount.*

  TO[email]custom@weiqiong.com[/email]IDENTIFIEDBY'stupid';

  7.重命名表:

  ALTERTABLEt1RENAMEt2;

  为了改变列a从INTEGER改为TINYINTNOTNULL名字一样)

  并且改变列b从CHAR10改为CHAR20同时重命名它从b改为c:

  ALTERTABLEt2MODIFYaTINYINTNOTNULL,CHANGEbcCHAR20;

  增加一个新TIMESTAMP列,名为d

  ALTERTABLEt2ADDdTIMESTAMP;

  列d上增加一个索引,并且使列a为主键:

  ALTERTABLEt2ADDINDEXd,ADDPRIMARYKEYa;

  删除列c

  ALTERTABLEt2DROPCOLUMNc;

  增加一个新的AUTO_INCREMENT整数列,命名为c

  ALTERTABLEt2ADDcINTUNSIGNEDNOTNULLAUTO_INCREMENT,ADDINDEXc;

  注意,索引了c因为AUTO_INCREMENT柱必须被索引,并且另外我声明c为NOTNULL

  因为索引了列不能是NULL

  8.删除记录:

  DELETEFROMt1WHEREC>10;

  6.改变某几行:

  UPDATEt1SETuser=weiqiong,password=weiqiong;

  7.使用name列的头10个字符创建一个索引:

  CREATEINDEXpart_of_namONcustomname10;

  数据导入问题 byseseandZjtv

  大家一定使用过 phpmyadmin里面的数据库导入,导出功能,非常方便。但是实际应用中,发现如下几个问题:

  1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行!原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。

  2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了

  数据库已经超过10M,所以必需解决这个问题。思路:

  导出:用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面!

  导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面!

  导出顺序如下:调用方法为 ****.php?table=tablename

  这个简单的顺序目前一次保存一个表格!每行为一个字段的数据!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $result=mysql_queri"select*from$table";

  ifmysql_num_row$result<=0exit;

  echo"开始转换数据到文本...

  ";

  $handl=fopen"$table.txt","w";

  $numfield=mysql_num_field$result;

  fput$handle,$numfields."\r\n";

  for$k=0;$k

  {

  $msg=mysql_fetch_row$result;

  for$i=0;$i<$numfields;$i++

  {

  $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i];

  $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i];

  fput$handle,$msg[$i]."\r\n";

  }

  fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n";

  }

  fclose$handl;

  echo"ok";

  ?>

  导入的顺序如下:用法同上面!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $messag=file"$table.txt";

  echo$numfield=chop$message[0];

  for$k=1;$k

  {

  $value="";

  for$i=$k;$i<$k+$numfields-1;$i++

  {

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i];

  $valu.="'".addslash$tmp."',";

  }

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1];

  $valu.="'".$tmp."'";

  $queri="insertinto$tablvalu".$value."";

  echomysql_error;

  mysql_queri$queri;

  echo$k."";

  }

  echo"ok";

  ?>

  大家一定使用过 phpmyadmin里面的数据库导入,导出功能,非常方便。但是实际应用中,发现如下几个问题:

  1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行!原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。

  2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了

  数据库已经超过10M,所以必需解决这个问题。思路:

  导出:用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面!

  导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面!

  导出顺序如下:调用方法为 ****.php?table=tablename

  这个简单的顺序目前一次保存一个表格!每行为一个字段的数据!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $result=mysql_queri"select*from$table";

  ifmysql_num_row$result<=0exit;

  echo"开始转换数据到文本...

  ";

  $handl=fopen"$table.txt","w";

  $numfield=mysql_num_field$result;

  fput$handle,$numfields."\r\n";

  for$k=0;$k

  {

  $msg=mysql_fetch_row$result;

  for$i=0;$i<$numfields;$i++

  {

  $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i];

  $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i];

  fput$handle,$msg[$i]."\r\n";

  }

  fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n";

  }

  fclose$handl;

  echo"ok";

  ?>

  导入的顺序如下:用法同上面!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $messag=file"$table.txt";

  echo$numfield=chop$message[0];

  for$k=1;$k

  {

  $value="";

  for$i=$k;$i<$k+$numfields-1;$i++

  {

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i];

  $valu.="'".addslash$tmp."',";

  }

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1];

  $valu.="'".$tmp."'";

  $queri="insertinto$tablvalu".$value."";

  echomysql_error;

  mysql_queri$queri;

  echo$k."";

  }

  echo"ok";

  ?>

  1显示数据库列表。

  showdatabases;

  刚开始时才两个数据库:mysql和testmysql库很重要它里面有mysql系统信息,

  改密码和新增用户,实际上就是用这个库进行操作。

  2显示库中的数据表:

  usemysql打开库,学过FOXBASE一定不会陌生吧

  showtables;

  3显示数据表的结构:

  describ表名;

  4建库:

  creatdatabas库名;

  5建表:

  use库名;

  creattabl表名(字段设定列表)

  6删库和删表:

  dropdatabas库名;

  droptabl表名;

  7将表中记录清空:

  deletfrom表名;

  8显示表中的记录:

  select*from表名;

  三、一个建库和建表以及插入数据的实例

  dropdatabasifexistschool;//如果存在SCHOOL则删除

  creatdatabasschool;//建立库SCHOOL

  useschool;//打开库SCHOOL

  creattablteacher//建立表TEACHER

  idint3auto_incrnotnullprimarikey,

  namchar10notnull,

  addressvarchar50default'深圳',

  yeardate

  ;//建表结束

  //以下为插入字段

  insertintoteachervalu'','glchengang','深圳一中','1976-10-10';

  insertintoteachervalu'','jack','深圳一中','1975-12-23';

  注:建表中

  1将ID设为长度为3数字字段:int3并让它每个记录自动加一:auto_incr

  并不能为空:notnull而且让它成为主字段primarikey

  2将NAME设为长度为10字符字段

  3将ADDRESS设为长度50字符字段,而且缺省值为深圳。varchar和char有什么区别

  呢,只有等以后的文章再说了

  4将YEAR设为日期字段。

  如果你mysql提示符键入上面的命令也可以,但不方便调试。可以将以上命令

  原样写入一个文本文件中假设为school.sql然后复制到c:下,并在DOS状态进入目录

  mysqlin然后键入以下命令:

  mysql-uroot-p密码 <c:school.sql< p="">

  如果胜利,空出一行无任何显示;如有错误,会有提示。以上命令已经调试,

  只要将//注释去掉即可使用)

  四、将文本数据转到数据库中

  1文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

  3rose深圳二中 1976-10-10

  4mike深圳一中 1975-12-23

  2数据传入命令loaddatalocalinfil"文件名"intotabl表名;

  注意:最好将文件复制到mysqlin目录下,并且要先用us命令选表所在库。

  五、导出和导入数据:命令在DOSmysqlin目录下执行)

  导出表

  mysqldump--optschool>school.sql

  注释:将数据库school中的表全部备份到school.sql文件,school.sql一个文本文件,

  文件名任取,打开看看你会有新发现。

  mysqldump--optschoolteacherstudent>school.teacher.student.sql

  注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文

  件,school.teacher.student.sql一个文本文件,文件名任取,打开看看你会有新发现。

  导入表

  mysql

  mysql>crdatabasschool;

  mysql>usschool;

  mysql>sourcschool.sql;

  或将school.sql换为school.teacher.sql/school.teacher.student.sql

  导出数据库

  mysqldump--databasdb1db2>db1.db2.sql

  注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql一个文本文件,文件名

  任取,打开看看你会有新发现。

  举个例子:

  mysqldump-hhost-uuser-ppass--databasdbname>file.dump

  就是把host上的以名字user口令pass数据库dbname导入到文件file.dump中。

  导入数据库

  mysql<db1.db2.sql< p="">

  复制数据库

  mysqldump--all-databas>all-databases.sql

  注释:将所有数据库备份到all-databases.sql文件,all-databases.sql一个文本文件,

  文件名任取。

  导入数据库

  mysql

  mysql>dropdatabasa;

  mysql>dropdatabasb;

  mysql>dropdatabasc;

  ...

  mysql>sourcall-databases.sql;或exit退出mysql后 mysql<all-databases.sql< p="">

  后记:

  其实mysql对数据库的操作与其它SQL类数据库大同小异,您最好找本将SQL书看

  看。这里只介绍一些基本的其实我也就只懂这些了呵呵。

  最好的mysql教程还是"晏子"译的"mysql中文参考手册"不只免费,每个相关网站都有

  下载,而且它最权威的可惜不象"PHP4中文手册"那样是chm格式,查找函数命令的

  时候不太方便。

  3.打开数据库:usdbname

  显示所有数据库:showdatabases;

  显示数据库mysql中所有的表:先usmysql然后showtables;

  显示表的列信息:describuser;显示表mysql数据库中user表的信息)

  4.创立一个可以从任何地方连接服务器的一个完全的超级用户,但是必需使用一个口令someth做这个

  GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'something'WITHGRANTOPTION;

  GRANTALLPRIVILEGESON*.*TOmonty@"%"IDENTIFIEDBY'something'WITHGRANTOPTION;

  5.删除授权:

  REVOKEALLPRIVILEGESON*.*FROMroot@"%";

  USEmysql;

  DELETEFROMuserWHEREUser="root"andHost="%";

  FLUSHPRIVILEGES;

  6.创立一个用户custom特定客户端weiqiong.com登录,可访问特定数据库bankaccount

  mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONbankaccount.*

  TO[email]custom@weiqiong.com[/email]IDENTIFIEDBY'stupid';

  7.重命名表:

  ALTERTABLEt1RENAMEt2;

  为了改变列a从INTEGER改为TINYINTNOTNULL名字一样)

  并且改变列b从CHAR10改为CHAR20同时重命名它从b改为c:

  ALTERTABLEt2MODIFYaTINYINTNOTNULL,CHANGEbcCHAR20;

  增加一个新TIMESTAMP列,名为d

  ALTERTABLEt2ADDdTIMESTAMP;

  列d上增加一个索引,并且使列a为主键:

  ALTERTABLEt2ADDINDEXd,ADDPRIMARYKEYa;

  删除列cALTERTABLEt2DROPCOLUMNc;

  增加一个新的AUTO_INCREMENT整数列,命名为c

  ALTERTABLEt2ADDcINTUNSIGNEDNOTNULLAUTO_INCREMENT,ADDINDEXc;

  注意,索引了c因为AUTO_INCREMENT柱必须被索引,并且另外我声明c为NOTNULL

  因为索引了列不能是NULL

  8.删除记录:

  DELETEFROMt1WHEREC>10;

  6.改变某几行:

  UPDATEt1SETuser=weiqiong,password=weiqiong;

  7.使用name列的头10个字符创建一个索引:

  CREATEINDEXpart_of_namONcustomname10;

  数据导入问题 byseseandZjtv

  大家一定使用过 phpmyadmin里面的数据库导入,导出功能,非常方便。但是实际应用中,发现如下几个问题:

  1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行!原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。

  2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了

  数据库已经超过10M,所以必需解决这个问题。思路:

  导出:用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面!

  导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面!

  导出顺序如下:调用方法为 ****.php?table=tablename

  这个简单的顺序目前一次保存一个表格!每行为一个字段的数据!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $result=mysql_queri"select*from$table";

  ifmysql_num_row$result<=0exit;

  echo"开始转换数据到文本...

  ";

  $handl=fopen"$table.txt","w";

  $numfield=mysql_num_field$result;

  fput$handle,$numfields."\r\n";

  for$k=0;$k

  {

  $msg=mysql_fetch_row$result;

  for$i=0;$i<$numfields;$i++

  {

  $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i];

  $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i];

  fput$handle,$msg[$i]."\r\n";

  }

  fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n";

  }

  fclose$handl;

  echo"ok";

  ?>

  导入的顺序如下:用法同上面!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $messag=file"$table.txt";

  echo$numfield=chop$message[0];

  for$k=1;$k

  {

  $value="";

  for$i=$k;$i<$k+$numfields-1;$i++

  {

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i];

  $valu.="'".addslash$tmp."',";

  }

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1];

  $valu.="'".$tmp."'";

  $queri="insertinto$tablvalu".$value."";

  echomysql_error;

  mysql_queri$queri;

  echo$k."";

  }

  echo"ok";

  ?>

  大家一定使用过 phpmyadmin里面的数据库导入,导出功能,非常方便。但是实际应用中,发现如下几个问题:

  1数据库超过一定尺寸,比方6M这时使用导出一般没问题,可以正确的保管到本机硬盘上面,但是导入则不行!原因是一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M而phpmyadmin使用了上传的方式,造成失败。

  2导出到硬盘的.SQL文件在导回时,经常呈现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了

  数据库已经超过10M,所以必需解决这个问题。思路:

  导出:用phpmyadmin保管数据库/表格结构,用脚本读取数据库内容并保存到文件里面!

  导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保管到库里面!

  导出顺序如下:调用方法为 ****.php?table=tablename

  这个简单的顺序目前一次保存一个表格!每行为一个字段的数据!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $result=mysql_queri"select*from$table";

  ifmysql_num_row$result<=0exit;

  echo"开始转换数据到文本...

  ";

  $handl=fopen"$table.txt","w";

  $numfield=mysql_num_field$result;

  fput$handle,$numfields."\r\n";

  for$k=0;$k

  {

  $msg=mysql_fetch_row$result;

  for$i=0;$i<$numfields;$i++

  {

  $msg[$i]=str_replac"\r\n","&&php2000mysqlreturn&&",$msg[$i];

  $msg[$i]=str_replac"\n","&&php2000mysqlreturn&&",$msg[$i];

  fput$handle,$msg[$i]. \r\n";

  }

  fput$handle,"-------php2000dumpdataprogramV1.0forMySQL--------\r\n";

  }

  fclose$handl;

  echo"ok";

  ?>

  导入的顺序如下:用法同上面!

  if$table==""exit;

  mysql_connect"localhost","name","password";

  mysql_select_db"database";

  $messag=file"$table.txt";

  echo$numfield=chop$message[0];

  for$k=1;$k

  {

  $value="";

  for$i=$k;$i<$k+$numfields-1;$i++

  {

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$i];

  $valu.="'".addslash$tmp."',";

  }

  $tmp=str_replac"&&php2000mysqlreturn&&","\r\n",chop$message[$k+$numfields-1];

  $valu.="'".$tmp."'";

  $queri="insertinto$tablvalu".$value."";

  echomysql_error;

  mysql_queri$queri;

  echo$k."";

  }

  echo"ok";

  ?>

  "

  当键入命令错误时,MySQL 的响铃声老是响个不停,很是烦人。如何禁用(取消)掉 MySQL 的响铃声呢。 有两个办法:

  一、是在用 mysql 连接数据库时,加上个 “-b(--no-beep)” 参数:

  mysql -u root -p xxxx -b

  mysql -u root -p xxxx --no-beep

  二、是在 mysql 配置文件 my.ini 中,找到 “[mysql]”,然后在下面加上 “no-beep” 选项:

  ... ...

  [mysql]

  no-beep

  ... ...

  显然,第二种方法是一劳永逸的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值