mysql命令集锦
用命令创建MySQL数据库
http://www.sudu.cn/service/detail.php?id=11443#6d
环境变量设置:
我的电脑->属性->高级->环境变量
选择PATH,在其后面添加: 你的mysql文件夹路径/bin (如:D:\Program Files\MySQL\MySQL Server 5.0\bin )
PATH=.......;D:\Program Files\MySQL\MySQL Server 5.0\bin (注意为追加,不是覆盖)
命令行连接
一、MySQL连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格)
C:\>mysql -h localhost -u root -p123(注意-p与密码是紧跟的)
二、MySQL连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123”
C:\>mysql -h 172.16.16.45 -P 3306 -u root -p123
三、MySQL连接本地数据库,用户名为“root”,隐藏密码
C:\>mysql -h localhost -u root -pEnter password:
四、MySQL 连接本地数据库,用户名为“root”,指定所连接的数据库为“test”
C:\>mysql -h localhost -u root -p123 -D testmysql>select database();+------------+| database() |+------------+| test |+------------+
零、MYSQL进程控制
mysql:
show variables like 'port';
show variables like "have_%";
windows:
http://www.jz123.cn/text/3035482.html
net stop mysql
net start mysql
netstat -ano 找到占用3306的进程
taskkill /F -PID 5004 杀掉进程
到mysql安装目录的bin下执行mysqld启动。
一、连接MYSQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1、 连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命 令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
3、 退出MYSQL命令: exit (回车)
二、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码。 例如
1、 给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
2、 再将root的密码改为djg345。
mysqladmin -u root -p ab12 password ******
三、创建数据库
1、 CREATE DATABASE 数据库名;
2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 用户名@localhost IDENTIFIED BY '密码';
or mysql> grant all privileges on 数据库名.* to '数据库名'@'localhost' identified by 'passwd';
3、 SET PASSWORD FOR
'数据库名'@'localhost' = OLD_PASSWORD('密码');
依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。
四、建立数据表
mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
五、导入.sql文件命令
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
六、字符设置
1、修改整个数据库的:
my.cnf配置文件里面的[mysqld]下面添加:
default-character-set = utf8
2、查看字符集
SHOW VARIABLES LIKE 'character_set_%';
3、查看一个库的字符集:
show create database wzxa;
4、单独设置某个数据库:
alter database testdb character set utf8;
5、查看mysql支持的编码:
show character set;
6、也可以使用如下方法查看编码:
--------------------------------------------------------------------分割线-------------------------------------------------------------------------
现在介绍一些常用的MYSQL命令
注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
二、常用命令
1、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
2、建立数据库:
mysql> CREATE DATABASE 库名;
3、建立数据表:
mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
4、删除数据库:
mysql> DROP DATABASE 库名;
5、删除数据表:
mysql> DROP TABLE 表名;
6、将表中记录清空:
mysql> DELETE FROM 表名;
TRUNCATE TABLE 表名;
7、往表中插入记录:
mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中数据:
mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;
10、导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
11、命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
mysql> FLUSH PRIVILEGES;
字段的添加和修改
1.登录数据库 >mysql -u root -p 数据库名称
2.查询所有数据表 >show tables;
3.查询表的字段信息 >desc 表名称;
4.1添加表字段
alter table table1 add transactor varchar(10) not Null;
alter table table1 add id int unsigned not Null auto_increment primary key
4.2.修改某个表的字段类型及指定为空或非空 >alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; >alter table 表名称 modify 字段名 称 字段类型 [是否允许非空];
>alter table 表名称 modify 字段名称 字段类型 [是否允许非空];
4.3.修改某个表的字段名称及指定为空或非空 >alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空
4.4如果要删除某一字段,可用命令:ALTER TABLE mytable DROP 字段 名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在sudu则删除
create database sudu; //建立库sudu
use school; //打开库sudu
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('','allen','飞数科技1','2005-10-10');
insert into teacher values('','jack','飞数科技2','2005-12-23');如果你在mysql提示符键入上面的命令也可以,但不方便调试。
(1)你可以将以上命令原样写入一个文本文件中,假设为sudu.sql,然后复制到c:\\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\sudu.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
(2)或者进入命令行后使用 mysql> source c:\sudu.sql; 也可以将sudu.sql文件导入数据库中。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.例:
3 rose 飞数科技1 1976-10-10
4 mike 飞数科技2 1975-12-23
假设你把这两组数据存为速度sudu.txt文件,放在c盘根目录下。
2、数据传入命令 load data local infile "c:\sudu.txt" into table 表名;
注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的\mysql\bin目录下执行)
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.导出一个数据库结构
mysqldump -u user_name -p -d --add-drop-table database_name > outfile_name.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database_name > outfile_name.sql
六、导出查询数据
方法一:
直接执行命令:
mysql> select count(1) from table into outfile '/tmp/test.xls';
在目录/tmp/下会产生文件test.xls
遇到的问题:
mysql> select count(1) from table into outfile '/data/test.xls';
报错:
ERROR 1 (HY000): Can't create/write to file '/data/test.xls' (Errcode: 13)
可能原因:mysql没有向/data/下写的权限
方法二:
查询都自动写入文件:
mysql> pager cat > /tmp/test.txt ;
PAGER set to 'cat > /tmp/test.txt'
之后的所有查询结果都自动写入/tmp/test.txt',并前后覆盖
mysql> select * from table ;
30 rows in set (0.59 sec)
在框口不再显示查询结果
方法三:
跳出mysql命令行
mysql -h 127.0.0.1 -u root -p XXXX -P 3306 -e "select * from table" > /tmp/test/txt
在需要导入的数据最后一列,写入一个excel公式,
=concatenate("insert into billing_rates_tbl(res_type,sub_res_id,duration,unit)values(’”;rc[-4];"','";rc[-3];"','";rc[-2];"','";rc[-1];"');")
注:如果有日期的话就把公式修改一下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",text(rc[-3],"yyyy-mm-dd hh:mm:ss"),"','",rc[-2],"','",rc[-1],"');")
将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“sql”)。
八、xls直接导入mysql
http://www.cnblogs.com/lellansin/archive/2012/07/07/2580329.html
执行sql:load data local infile '/Users/zousunying/workspace/scripts/test/pda_cost_info2.xls' into table pda_cost_info_test fields terminated by '\t';
复制创建表
1.create table A like B
此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来。
2.create table a as select x,x,x,x from b limit 0
此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来。这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构。
两种方式在复制表的时候均不会复制权限对表的设置。比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权限。