/ 中存储网

MySQL数据库常用命令行

2014-07-13 16:15:41 来源:中存储网

1、MySQL常用命令 -

-

create database name; 创建数据库 -

-

use databasename; 选择数据库 -

-

drop database name 直接删除数据库,不提醒 -

-

show tables; 显示表 -

-

describe tablename; 表的详细描述 -

-

select 中加上distinct去除重复字段 -

-

mysqladmin drop databasename 删除数据库前,有提示。 -

-

显示当前mysql版本和当前日期 -

-

select version(),current_date; -

-

2、修改mysql中root的密码: -

-

shell>mysql -u root -p -

-

mysql> update user set password=password(”xueok654123″) where user=’root’; -

-

mysql> flush privileges //刷新数据库 -

-

mysql>use dbname; 打开数据库: -

-

mysql>show databases; 显示所有数据库 -

-

mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 -

-

mysql>describe user; 显示表mysql数据库中user表的列信息); -

-

3、grant -

-

创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个 -

-

mysql> grant all privileges on *.* to user@localhost identified by ’something’ with -

-

增加新用户 -

-

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” -

-

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; -

-

删除授权: -

-

mysql> revoke all privileges on *.* from root@”%”; -

-

mysql> delete from user where user=”root” and host=”%”; -

-

mysql> flush privileges; -

-

创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb -

-

mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’ -

-

重命名表: -

-

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 < dbname_backup.sql -

-

如果只想卸出建表指令,则命令如下: -

-

shell> mysqladmin -u root -p -d databasename > a.sql -

-

如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下: -

-

shell> mysqladmin -u root -p -t databasename > a.sql -

-

那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢? -

-

   mysqldump -T./ phptest driver -

-

其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。 -

-

5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql 中存放有查 -

-

询,可如下执行这些查询: -

-

例如,如果您想将建表语句提前写在sql.txt中: -

-

mysql > mysql -h myhost -u root -p database < sql.txt -

MySQL实用命令
Wikipedia,自由的百科全书
一) 连接MYSQL:
   格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL
   首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL
   假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
   mysql -h10.0.0.1 -uroot -p123
  (注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令
   exit (回车)

(二) 修改密码:
   格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码123。首先在DOS下进入目录C:/mysql/bin,然后键入以下命令:
   mysqladmin -uroot -password 123
   注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为456
   mysqladmin -uroot -pab12 password 456
(三) 增加新用户:(注意:和上面不同,下面的因为是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、显示数据库列表:
   show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
   use mysql; //打开库
   show tables;
3、显示数据表的结构:
   describe 表名;
4、建库:
   create database 库名;
5、建表:
   use 库名;
   create table 表名 (字段设定列表);
6、删库和删表:
   drop database 库名;
   drop table 表名;
7、将表中记录清空:
   delete from 表名;
8、显示表中的记录:
   select * from 表名;

MySQL导入导出命令
1.导出整个数据库
  mysqldump -u 用户名 -p 数据库名 > 导出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构
  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库
  常用source 命令
  进入mysql数据库控制台,
  如mysql -u root -p
  mysql>use 数据库
  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
  mysql>source d:wcnc_db.sql  (注:如果写成source d:/wcnc_db.sql,就会报语法错误)
[color=darkred][/color]MySQL 命令行

1、mysql服务的启动和停止
net stop mysql
net start mysql

2、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

3、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

4: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

5、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:2、创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex="f" where name='hyq'; 13:备份数据库mysqldump -u root 库名>xxx.data14:

例2:连接到远程主机上的MYSQL
  假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

  mysql -h110.110.110.110 -uroot -pabcd123

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

  3、退出MYSQL命令: exit
第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:2、创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex="f" where name='hyq'; 13:备份数据库mysqldump -u root 库名>xxx.data14:

例2:连接到远程主机上的MYSQL
  假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

  mysql -h110.110.110.110 -uroot -pabcd123

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

  3、退出MYSQL命令: exit

重要提示:mysql命令直到遇到;才开始执行,除了几个特殊命令
1、启动MySQL服务器
实际上上篇已讲到如何启动MySQL。两种方法:一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。二是在DOS方式下运行 c:/mysql/bin/mysqld
2、进入mysql交互操作界面
在DOS方式下,运行: d:mysqlbinmysql
出现: mysql 的提示符,此时已进入mysql的交互操作方式。
如果出现 "ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)“,
说明你的MySQL还没有启动。
3、退出MySQL操作界面
在mysql>提示符下输入quit可以随时退出交互操作界面:
mysql> quit
Bye
你也可以用control-D退出。
4、第一条命令
mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
mysql>
此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。结果说明mysql命令的大小写结果是一致的。
练习如下操作:
mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)
5、多行语句
一条命令可以分成多行输入,直到出现分号“;”为止:


mysql> select
-> USER()
-> ,
-> now()
->;
+--------------------+---------------------+
| USER() | now() |
+--------------------+---------------------+
| ODBC@localhost | 2001-05-17 22:59:15 |
+--------------------+---------------------+
1 row in set (0.06 sec)
mysql>
注意中间的逗号和最后的分号的使用方法。
6、一行多命令
输入如下命令:
mysql> SELECT USER(); SELECT NOW();
+------------------+
| USER() |
+------------------+
| ODBC@localhost |
+------------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2001-05-17 23:06:15 |
+---------------------+
1 row in set (0.00 sec)
mysql>
注意中间的分号,命令之间用分号隔开。
7、显示当前存在的数据库
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 row in set (0.06 sec)
mysql>
8、选择数据库并显示当前选择的数据库
mysql> USE mysql
Database changed
mysql>
(USE 和 QUIT 命令不需要分号结束。)
mysql> select database();
+---------------+
| database() |
+---------------+
| mysql |
+---------------+
1 row in set (0.00 sec)
9、显示当前数据库中存在的表
mysql> SHOW TABLES;
10、显示表(db)的内容
mysql>select * from db;
11、命令的取消
当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令
mysql> select
-> user()
-> c
mysql>
这是一些最常用的最基本的操作命令,通过多次练习就可以牢牢掌捂了。
Mysql数据库是一个多用户,多线程的关系型数据库,是一个客户机/服务器结构的应用程序。它是对个人用户和商业用户是免费的.


  Mysql数据库具有以下优点:

  1.同时访问数据库的用户的数量不受限制

  2.可以保存超过5千万条的记录

  3.是目前市场上现有数据库产品中运行速度最快的数据库系统

  4.用户权限设置简单、有效。

  Mysql数据库常用命令:

  启动Mysql数据库

  C:/>cd Mysql5.0/bin

  C:/Mysql5.0/bin>mysqld –install 安装Mysql服务

  C:/Mysql5.0/bin>net start mysql 启动Mysql服务

  请求的服务已经启动。

  连接mysql

  用户需要提供Mysql的用户名和密码来连接服务器,如果服务器不是在本机,则还需要一个主机名或IP来指定服务器的位置。

  C:/Mysql5.0/bin>mysql -h localhost -u root -p

  Enter password: ****

  Welcome to the MySQL monitor. Commands end with ; or /g.

  Your MySQL connection id is 6 to server version: 5.0.18-nt

  Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

  mysql>

  使用一条简单的查询语句

  mysql> select version(),current_date;

  mysql> select version();select now();

  新建或删除一个数据库

  Mysql>create database mydb;

  Mysql> drop database mydb;

  打开的数据库的命令

  mysql> use mysql

  Database changed

  查看数据库的命令

  mysql> show databases;

  查看数据表的详细结构

  mysql> desc func;

  新建数据库

  mysql> create database school;

  Query OK, 1 row affected (0.00 sec)

  新建表

  mysql> create table user01(

  -> id varchar(20) NOT NULL,

  -> userName varchar(10) NOT NULL,

  -> age int(11) default'0',

  -> sex char(2) NOT NULL default'm',

  -> PRIMARY KEY (id)

  -> )TYPE=InnoDB;

  Query OK, 0 rows affected, 1 warning (0.02 sec)mysql>desc student;

  插入和删除表中的数据

  Create table student(stuName varchar(20),age varchar(20),id varchar(20),set0 char(1));

  插入

  mysql> insert into student(id,stuName) values('1','tomcat');

  Query OK, 1 row affected (0.00 sec)

  删除

  mysql> delete from student where id='1';

  Query OK, 1 row affected (0.01 sec)

  删除表中所有数据

  mysql> truncate table student;

  Query OK, 1 row affected (0.01 sec)

  删除表

  mysql> create table temp(t varchar(1));

  Query OK, 0 rows affected (0.00 sec)

  mysql> drop table temp;

  Query OK, 0 rows affected (0.00 sec)

  创建新用户并给予权限

  mysql> grant all privileges on *.* to dbuser@localhost identified by '1234'

  with grant option;

  更改Mysql用户密码

  c:/Mysql5.0/bin>mysqladmin -u root -p password 1234

  Enter password: ****

  备份数据库及表

  我们用mysqldump命令来备份数据库

  c:/mysql/bin/>mysqldump –u root –p 3306 mysql>d:/backup.sql

  执行此语句将把mydb 备份到D盘的backup.sql文件中

  备份多个数据库表

  c:/mysql/bin/>mysqldump –u root –p 3306 school user01 user >d:/backup.sql

  此句的意思是把school库中的user01表和user表的内容和表的定义备份到D盘backup.sql文件中。

  备份所有的数据库

  c:/myql/bin>mysqldump –u root –p 3306 –all –database>d:backup.sql

  还原Mysql数据库

  c:/mysql/bin/mysql –u root –p 3306 school

  还原其中的一个表

  mysql> source d:/books.sql;

  ERROR:

  Unknown command '/b'.

  Query OK, 0 rows affected (0.00 sec)

  Query OK, 1 row affected (0.00 sec)

  退出Mysql连接

  mysql>quit(exit)

  关闭mysql服务

  C:/mysql/bin>net mysql