MySQL5.0中文-各种命令

2012 年 01 月 17 日 下午 1:20  |  分类:SQL

将.sql大文件导入到mysql中及常用命令
用命令
mysql -u root -p book

MySQL5.0中文问题:
登录时用命令:mysql --default-character-set=gbk -u root -p
建表时用命令:create table name(name varchar(20))[TYPE=MyISAM,]default character set
gbk;

=====================
连接服务者:
mysql -h host -u user -p

=====================
新增超级用户:
GRANT ALL PRIVILEGES ON *.* TO grb@”%” IDENTIFIED BY ‘password’ WITH GRANT OPTION;
全文阅读 »

MySQL在命令行下导入导出.sql文件的方法

2011 年 08 月 22 日 上午 8:34  |  分类:SQL,Zen-Cart二次开发

MySQL导入导出.sql文件步骤如下:

一.MySQL的命令行模式的设置:

桌面->我的电脑->属性->环境变量->新建->

PATH=“;path\mysql\bin;”其中path为MySQL的安装路径。

二.简单的介绍一下命令行进入MySQL的方法:

1.C:\>mysql -h hostname -u username -p

按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,如root。

进入命令行后可以直接操作MySQL了。

2.简单介绍一下MySQL命令:

mysql->CREATE DATABASE dbname;//创建数据库

mysql->CREATE TABLE tablename;//创建表

mysql->SHOW DATABASES;//显示数据库信息,有那些可用的数据库。

mysql->USE dbname;//选择数据库

mysql->SHOW TABLES;//显示表信息,有那些可用的表

mysql->DESCRIBE tablename;//显示创建的表的信息

三.从数据库导出数据库文件:

1.将数据库mydb导出到e:\mysql\mydb.sql文件中:

打开开始->运行->输入cmd 进入命令行模式

c:\>mysqldump -h localhost -u root -p mydb >e:\mysql\mydb.sql

然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。

2.将数据库mydb中的mytable导出到e:\mysql\mytable.sql文件中:

c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql

3.将数据库mydb的结构导出到e:\mysql\mydb_stru.sql文件中:

c:\>mysqldump -h localhost -u root -p mydb –add-drop-table >e:\mysql\mydb_stru.sql

//-h localhost可以省略,其一般在虚拟主机上用

四.从外部文件导入数据到数据库中:

从e:\mysql\mydb2.sql中将文件中的SQL语句导入数据库中:

1.从命令行进入mysql,然后用命令CREATE DATABASE mydb2;创建数据库mydb2。

2.退出mysql 可以输入命令exit;或者quit;

3.在CMD中输入下列命令:

c:\>mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql

然后输入密码,就OK了。

五.下面谈一下关于导入文件大小限制问题的解决:

默认情况下:MySQL 对导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:

1.在php.ini中修改相关参数:

影响mysql导入文件大小的参数有三个:

memory_limit=128M,upload_max_filesize=2M,post_max_size=8M

修改upload_max_filesize=200 M 这里修改满足你需要的大小,可以同时修改其他两项memory_limit=250M post_max_size=200M

这样就可以导入200M以下的.sql文件了。

上文中是把MySQL放置在系统路径中,其实不妨也行。例如我的MySQL安装目录为D:\MySQL Server 5.0;

则首先用cmd打开dos窗口,然后输入D:(没有'\')回车

此时应该会出现D:\>这样的标记,然后在其后面输入D:\MySQL Server 5.0\bin回车(顺序颠倒也行的)

出现D:\MySQL Server 5.0\bin> 接着输入mysqldump -u用户名 -p 数据库名 > 数据库名.sql(也可以输入路径);具体用法参照上文。

导入文件同样,只是改了‘>’为‘<’就行了。或者直接用source 也行:

常用source 命令

进入mysql数据库控制台

如mysql -u root -p(没必要,省略)

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql

OPTIMIZE TABLE的作用

2011 年 02 月 08 日 上午 10:53  |  分类:SQL

当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删 除操作后在数据文件中留下碎片所致。Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作。您只要在做完批量删除,或定期(如 每一两个月)进行一次数据表优化操作即可。

OPTIMIZE TABLE通过制作原来的表的一个临时副本来工作

OPTIMIZE TABLE语法

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] …
如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有 VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。

在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次即可,只对特定的表运行。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。

对于MyISAM表,OPTIMIZE TABLE按如下方式操作:

1. 如果表已经删除或分解了行,则修复表。

2. 如果未对索引页进行分类,则进行分类。

3. 如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。

对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上。对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,这会重建表。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间。请参见“ANALYZE TABLE语法”。

使用—skip-new或—safe-mode选项可以启动mysqld。通过启动mysqld,您可以使OPTIMIZE TABLE对其它表类型起作用。

注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

OPTIMIZE TABLE语句被写入到二进制日志中,除非使用了自选的NO_WRITE_TO_BINLOG关键词(或其别名LOCAL)。已经这么做了,因此,用于 MySQL服务器的OPTIMIZE TABLE命令的作用相当于一个复制主服务器,在默认情况下,这些命令将被复制到复制从属服务器中。

输出mysql数组

2010 年 12 月 08 日 上午 11:12  |  分类:SQL

mysql数组问题:
 //$qrystr = mysql_query(“SELECT zid,zname from `dede_onlinetest` order by zid asc;”);
 
 //形成新的数组
// while ($row = mysql_fetch_array($qrystr)) {
// $row1[]=$row;
// }

print_r($row1);

Sql语句设置mysql外键

2010 年 08 月 02 日 下午 8:03  |  分类:SQL

ALTER TABLE user ADD CONSTRAINT roleId
FOREIGN KEY (RoleId)
REFERENCES Role (roleid);

第一行是说要为user表设置外键,给这个外键起一个名字叫做roleId;第二行是说将本表的RoleId字段设置为外键;第三行是说这个外键受到的约束来自于Role表的roleid字段。