有很多朋友虽然安装好了
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 -uroot password ab12
注:因为开始时
root
没有密码,所以
-p
旧密码一项就可以省略了。
2
、
例
2
:再将
root
的密码改为
djg345
。
mysqladmin -uroot -pab12 password djg345
另一种方法:
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");
三、增加新用户。(注意:和上面不同,下面的因为是
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 "";
有关数据库方面的操作。注意:你必须首先登录到
mysql
中,以下操作都是在
mysql
的提
示符下进行的,而且每个命令以分号结束。
一、操作技巧
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
状态进入目录
mysqlin
,然后键入以下命令:
mysql -uroot -p
密码
< c:school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你
只要将
//
的注释去掉即可使用)。
四、将文本数据转到数据库中
1
、
文本数据应符合的格式:字段数据之间用
tab
键隔开,
null
值用来代替。例:
3 rose
深圳二中
1976-10-10
4 mike
深圳一中
1975-12-23
2
、
数据传入命令
load data local infile "
文件名
" into table
表名
;
注意:你最好将文件复制到
mysqlin
目录下,并且要先用
use
命令选表所在的库。
五、导出和导入数据:
(
命令在
DOS
的
mysqlin
目录下执行
)
导出表
mysqldump --opt school > school.sql
注释:将数据库
school
中的表全部备份到
school.sql
文件,
school.sql
是一个文本文件,
文件名任取,打开看看你会有新发现。
mysqldump --opt school teacher student > school.teacher.student.sql
注释:将数据库
school
中的
teacher
表和
student
表备份到
school.teacher.student.sql
文
件,
school.teacher.student.sql
是一个文本文件,文件名任取,打开看看你会有新发现。
导入表
mysql
mysql>create database school;
mysql>use school;
mysql>source school.sql;
(
或将
school.sql
换为
school.teacher.sql / school.teacher.student.sql)
导出数据库
mysqldump --databases db1 db2 > db1.db2.sql
注释:将数据库
dbl
和
db2
备份到
db1.db2.sql
文件,
db1.db2.sql
是一个文本文件,文件名
任取,打开看看你会有新发现。
(
举个例子:
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把
host
上的以名字
user
,口令
pass
的数据库
dbname
导入到文件
file.dump
中。
)
导入数据库
mysql < db1.db2.sql
复制数据库
mysqldump --all-databases > all-databases.sql
注释:将所有数据库备份到
all-databases.sql
文件,
all-databases.sql
是一个文本文件,
文件名任取。
导入数据库
mysql
mysql>drop database a;
mysql>drop database b;
mysql>drop database c;
...
mysql>source all-databases.sql; (
或
exit
退出
mysql
后
mysql < all-databases.sql)
后记:
其实
mysql
的对数据库的操作与其它的
SQL
类数据库大同小异,
您最好找本将
SQL
的书看
看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。
最好的
mysql
教程还是
"
晏子
"
译的
"mysql
中文参考手册
"
。不仅免费,每个相关网站都有
下载,而且它是最权威的。可惜不象
"PHP4
中文手册
"
那样是
chm
的格式,
在查找函数命令的
时候不太方便。
3.
打开数据库:
use dbname
;
显示所有数据库:
show databases;
显示数据库
mysql
中所有的表:先
use mysql
;然后
show tables;
显示表的列信息:
describe user;(
显示表
mysql
数据库中
user
表的信息);
4.
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令
something
做这个
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
5.
删除授权:
REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
USE mysql;
DELETE FROM user WHERE User="root" and Host="%";
FLUSH PRIVILEGES;
6.
创建一个用户
custom
在特定客户端
weiqiong.com
登录,可访问特定数据库
bankaccount
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON bankaccount.*
TO custom@weiqiong.com IDENTIFIED BY 'stupid';
7.
重命名表
:
ALTER TABLE t1 RENAME t2;
为了改变列
a
,从
INTEGER
改为
TINYINT NOT NULL(
名字一样
)
,
并且改变列
b
,从
CHAR(10)
改为
CHAR(20)
,同时重命名它,从
b
改为
c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一个新
TIMESTAMP
列,名为
d
:
ALTER TABLE t2 ADD d TIMESTAMP;
在列
d
上增加一个索引,并且使列
a
为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
删除列
c
:
ALTER TABLE t2 DROP COLUMN c;
增加一个新的
AUTO_INCREMENT
整数列,命名为
c
:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了
c
,因为
AUTO_INCREMENT
柱必须被索引,并且另外我们声明
c
为
NOT NULL
,
因为索引了的列不能是
NULL
。
8.
删除记录
:
DELETE FROM t1 WHERE C>10;
6.
改变某几行
:
UPDATE t1 SET user=weiqiong,password=weiqiong;
7.
使用
name
列的头
10
个字符创建一个索引
:
CREATE INDEX part_of_name ON customer (name(10));
posted on 2006-07-20 14:02
黑咖啡 阅读(420)
评论(0) 编辑 收藏 所属分类:
Tec Article