1、MYSQL 命令大全 2008 年 12 月 10日 星期三 上午 11:44 常见的 MySQL 命令大全 2007-11-09 17:59 一、连接 MySQL 格式: mysql -h主机地址 -u用户名 p用户密码 1、例 1:连接到本机上的 MYSQL。 首先在打开 DOS 窗口,然后进入目录 mysqlbin,再键入命令 mysql -uroot -p,回车后提示你输密码,如果刚安装好 MYSQL,超级用户 root是没有密码的,故直接回车即可进入到 MYSQL 中了, MYSQL的提 示符是: mysql。 2、例 2:连接到远程主机上的 MYSQL。假设远程主机的 IP为: 1
2、10.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旧
3、密码一项就可以省略了。 2、例 2:再将 root的密码改为 djg345。 mysqladmin -uroot -pab12 password djg345 三、增加新用户。(注意: 和上面不同,下面的因为是 MySQL环境中的命令,所以后面都带一个分号作为命令结束符) 格式: grant select on 数据库 .* to 用户名 登录主机 identified by “密码 “ 例 1、增加一个用户 test1密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root用户连入 MySQL,然后键入以下命令: grant select,i
4、nsert,update, delete on *.* to test2localhost identified by “abc“; 如果你不想 test2 有密码,可以再打一个命令将密码消掉。 grant select,insert,update,delete on mydb .* to test2localhost identified by “; 在上面讲了登录、增加用户、密码更改等问题。下面我们来看看 MySQL 中有关数据库方面的操作。注意:你必须首先登录到 MySQL中,以下操作都是在 MySQL 的提示符下进行的,而且每个命令以分号结束。 1、 MySQL 常用命令 create
5、 database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上 distinct 去除重复字段 mysqladmin drop database name 删除数据库前,有提示。 显示当前 mysql 版本和当前日期 select version(),current_date; 2、修改 mysql 中 root 的密码: shellmysql -u root -p mysql update us
6、er set password=password(”xueok654123) where user=root; mysql flush privileges /刷新数据库 mysqluse dbname; 打开数据库: mysqlshow databases; 显示所有数据库 mysqlshow tables; 显示数据库 mysql 中所有的表:先 use mysql;然后 mysqldescribe user; 显示表 mysql 数据库中 user表的列信息); 3、 grant 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令 something 做这个 my
7、sql grant all privileges on *.* to userlocalhost identified by something with 增加新用户 格式: grant select on 数据库 .* to 用户名 登录主机 identified by “ 密码 ” GRANT ALL PRIVILEGES ON *.* TO montylocalhost IDENTIFIED BY something WITH GRA NT OPTION; GRANT ALL PRIVILEGES ON *.* TO monty”% ” IDENTIFIED BY something W
8、ITH GRANT OPTION; 删除授权: mysql revoke all privileges on *.* from root”% ”; mysql delete from user where user=”root” and host=”%”; mysql flush privileges; 创建一个用户 custom 在特定客户端 登录,可访问特定数据库fangchandb mysql grant select, insert, update, delete, create,drop on fangchandb.* to custom identified by passwd
9、 重命名表 : mysql alter table t1 rename t2; 4、 mysqldump 备份数据库 shell mysqldump -h host -u root -p dbname dbname_backup.sql 恢复数据库 shell mysqladmin -h myhost -u root -p create dbname shell mysqldump -h host -u root -p dbname mysqladmin -u root -p -d databasename a.sql 如果只想卸出插入数据的 sql 命令,而不需要建表命令,则命令如下: sh
10、ell mysqladmin -u root -p -t databasename a.sql 那么如果我只想要数据,而不想要什么 sql命令时,应该如何操作呢? mysqldump -T./ phptest driver 其中,只有指定了 -T参数才可以卸出纯文本文件,表示卸出数据的目录, ./表示当前目录,即与 mysqldump 同一目录。如果不指定 driver 表,则将卸出整个数据库的数据。每个表会生 成两个文件,一个为 .sql文件,包含建表执行。另一个为 .txt 文件,只包含数据,且没有 sql指令。 5、可将查询存储在一个文件中并告诉 mysql从文件中读取查询而不是等待键盘
11、输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件 my_file.sql 中存放有查 询,可如下执行这些查询: 例如,如果您想将建表语句提前写在 sql.txt 中 : mysql mysql -h myhost -u root -p database create database staffer 2)创建表 staffer,department,position,depart_pos create table s_position ( id int not null auto_increment, name varchar(20) not null default 经
12、理 , #设定默认值 description varchar(100), primary key PK_positon (id) #设定主键 ); create table department ( id int not null auto_increment, name varchar(20) not null default 系统部 , #设定默认值 description varchar(100), primary key PK_department (id) #设定主键 ); create table depart_pos ( department_id int not null, p
13、osition_id int not null, primary key PK_depart_pos (department_id,position_id) #设定复和主键 ); create table staffer ( id int not null auto_increment primary key, #设定主键 name varchar(20) not null default 无名氏, #设定默认值 department_id int not null, position_id int not null, unique (department_id,position_id) #设
14、定唯一值 ); 3)删除 mysql drop table depart_pos; drop table department; drop table s_position; drop table staffer; drop database staffer; 9、修改结构 mysql #表 position 增加列 test alter table position add(test char(10); #表 position 修改列 test alter table position modify test char(20) not null; #表 position 修改列 test 默
15、认值 alter table position alter test set default system; #表 position 去掉 test 默认值 alter table position alter test drop default; #表 position 去掉列 test alter table position drop column test; #表 depart_pos 删除主键 alter table depart_pos drop primary key; #表 depart_pos 增加主键 alter table depart_pos add primary k
16、ey PK_depart_pos (department_id,position_id); 10、操作数据 #插入表 department insert into department(name,description) values(系统部 ,系统部 ); insert into department(name,description) values(公关部 ,公关部 ); insert into department(name,description) values(客服部 ,客服部 ); insert into department(name,description) values(财务
17、部 ,财务部 ); insert into department(name,description) values(测试部 ,测试部 ); #插入表 s_position insert into s_position(name,description) values(总监 ,总监 ); insert into s_position(name,description) values(经理 ,经理 ); insert into s_position(name,description) values(普通员工,普通员工 ); #插入表 depart_pos insert into depart_po
18、s(department_id,position_id) select a.id department_id,b.id postion_id from department a,s_position b; #插入表 staffer insert into staffer(name,department_id,position_id) values(陈达治 ,1,1); insert into staffer(name,department_id,position_id) values(李文宾 ,1,2); insert into staffer(name,department_id,posit
19、ion_id) values(马佳 ,1,3); insert into staffer(name,department_id,position_id) values(亢志强 ,5,1); insert into staffer(name,department_id,position_id) values(杨玉茹 ,4,1); 11、查询及删除操作 #显示系统部的人员和职位 select a.name,b.name department_name,c.name position_name from staffer a,department b,s_position c where a.depa
20、rtment_id=b.id and a.position_id=c.id and b.name=系统部 ; #显示系统部的人数 select count(*) from staffer a,department b where a.department_id=b.id and b.name=系统部 #显示各部门的人数 select count(*) cou,b.name from staffer a,department b where a.department_id=b.id group by b.name; #删除客服部 delete from department where name
21、=客服部 ; #将财务部修改为财务一部 update department set name=财务一部 where name=财务部 ; 12、备份和恢复 备份数据库 staffer c:mysqlbinmysqldump -uroot -proot staffere:staffer.sql 得到的 staffer.sql 是一个 sql脚本,不包括建库的语句,所以你需要手工 创建数据库才可以导入 恢复数据库 staffer,需要创建一个空库 staffer c:mysqlbinmysql -uroot -proot staffere:staffer.sql mysql -uroot -proot e:staffer.sql 但这样的话系统种就不能存在 staffer 库,且无法导入其他名字的数据库, 当然你可以手工修改 staffer.sql 文件 13、从文本向数据库导入数据 1)使用工具 c:mysqlbinmysqlimport 这个工具的作用是将文件导入到和去掉文件扩展名名字相同的表里,如 staffer.txt,staffer 都是导入到 staffer 表中 常用选项及功能如下