Mysql常用命令集合

创建一个数据库:

create database db_Name;


选择数据库:

use db_Name;


设置数据库编码

set names utf8;


允许所有用户远程登录:

grant all on *.* to 'root'@'%' identified by '123456';

grant all privileges on  DBName.* to USERname@'%' identified by '123456';

需要刷新权限表

flush privileges;


显示数据库中所有的表:

show Tables;


显示索引信息:

show index from Table_name;


显示表数据:

select * from Table_name;


显示表中指定行数:

select * from Table_Name limit 10;


修复表:

repair table Table_name


更新表:

update 表名 set  name=?,password=?.... where id=?


导出所有数据库

mysqldump -uroot -p密码 --all-databases > all.sql


将表中sex字段下的所有条目改为f:update mytable set sex="f";


建立表:use 库名;create table 表名 (字段设定列表);


清空表:delete from tablename;

清空表:truncate table tablename;


删除一个表:drop table Table_Name;


删除一个表2:DROP TABLE IF EXISTS `account`;


删除一个库:drop database db_Name;


显示表结构:

desc table_name;

show columns from table_name;

describe table_name;



修改root密码

mysqladmin -uroot -p123456 password 654321 



安装完毕初次使用数据库修改密码:

mysqladmin -uroot password "kuutown@1601"(单引号双引号皆可 没有减号)


只导出表结构

mysqldump -uroot -p -d abc > abc.sql


查询表行数:

select count(*) from tablename;



查看mysql现在已经提供什么引擎:

show engines;


查看mysql当前默认的存储引擎:

show variables like '%storage_engine%';








导出一个表


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





增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

grant select,insert,update,delete on *.* to test2@localhost identified by "abc"; 


如果你不想test2有密码,可以再打一个命令将密码消掉。     

grant select,insert,update,delete on mydb.* to test2@localhost identified by ""; 

建立一个用户,并赋予远程连接权限:grant all on db.* to Name identified by 'password'








导入sql脚本


mysql -u 用户名 -p 数据库名 < 存放位置


mysqljump -u root -p test < c:/a.sql


注意,test数据库必须已经存在







limit:

limit是mysql的语法

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示第一条记录

n是指从第m+1条开始,取n条。

select * from tablename limit 2,4

即取出第3条至第6条,4条记录



===========================================================================================

【Navicat连接技巧】

1、修改远程连接限制:选定数据库>>选择‘用户’(工具栏),主机改为:%




Windows下Mysql数据库服务的关闭和重启:

我们要重启Mysql服务才能使之生效,这里提供几种重启方法:

1、windows下重新启动mysql5的方法:

在安装mysql时系统会添加服务,可以通过管理工具里面的 <服务> 一项来停止和启动mysql。这样修改的my.ini就会生效了。


2、也可以用命令行模式,在运行里输入:

停止:net stop mysql(其中mysql为你安装的mysql服务名称)

启动:net start mysql




===========================================================================================




MysqlWindows下备份路径:

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data






MySQL新建用户,授权,删除用户,修改密码

新建用户。

//创建用户

mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp  密码为:1234  的用户。






首先是启动服务。如果是redhat的话,可以使用setup或者ntsysv命令进入服务设置页面后,将mysqld那项选中,然后保存退出。如果不是redhat没有以上工具的话,可以使用chkconfig --level 35 mysqld on命令来开启服务。当然,这只是要求每次系统启动时启动服务,为了不用重启,需要使用/etc/init.d/mysqld start或者service mysqld start命令来使现在的服务启动,如果是重启服务的话,使用service ** restart。

在终端中输入mysql,看是否提示有这条命令,如果提示是command not found的话,应该是PATH变量的问题。解决的方法,可以将你安装mysql的路径也加入到PATH中,也可以将mysql中的需要执行的这些命令拷贝到PATH中。不过我mysql也是个菜鸟,真的不清楚有多少命令,所以建议把安装路径加入到PATH中,可以通过修改/etc/profile或者主目录下.bashrc文件来实现。一个是全局,一个只针对本账号。就是在文件中添加PATH=/usr/mysql:$PATH,位置无所谓,添进去应该就ok了。

然后输入mysql命令看看有反映没,如果没反应,就在查查,我也没这么弄过,但是我估计应该好使。

最后是添加mysql的密码了,默认时直接输入mysql就可以进入了,所以要进行修改。输入mysqladmin -u root password ***,就是给root添加密码了,如果是修改的话,格式为mysqladmin -u root -p 旧密码 password 新密码。还有,我真的是个菜鸟,加密码之前,其他账号也可以使用mysql命令直接进入,加了之后其他帐户可以使用mysql -uroot -p命令,然后输入密码进入(root也是以同样的方法进入),但是我不知道怎么添加别的帐户,比如说其他账户tom使用mysql -utom -p来进入,不好意思了。

对了,设定密码的时候,输入的是明文,而由于bash会保留命令,最好清除一下.bash_history,不然别人用一下history命令就可以知道你的密码是什么了。


2.为用户授权。


如果想指定部分权限给一用户,可以这样来写:

mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';

//刷新系统权限表。

mysql>flush privileges;


3.删除用户。

>mysql -u root -p

>密码

mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";

mysql>flush privileges;

//删除用户的数据库

mysql>drop database phplampDB;


4.修改指定用户密码。

@>mysql -u root -p

@>密码

mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";

mysql>flush privileges;


===========================================================================================


mysql> show variables like '%connection%';

+--------------------------+-----------------+

| Variable_name            | Value           |

+--------------------------+-----------------+

| character_set_connection | utf8            |

| collation_connection     | utf8_general_ci |

| max_connections          | 2000            |

| max_user_connections     | 0               |

+--------------------------+-----------------+

4 rows in set (0.00 sec)


mysql> show global status like '%Max_used%';  

+----------------------+-------+

| Variable_name        | Value |

+----------------------+-------+

| Max_used_connections | 237   |

+----------------------+-------+

1 row in set (0.00 sec)


mysql> show processlist;

+--------+------+-----------+------------+---------+------+-------+------------------+

| Id     | User | Host      | db         | Command | Time | State | Info             |

+--------+------+-----------+------------+---------+------+-------+------------------+

| 300717 | root | localhost | loldbrtmp8 | Query   |    0 | NULL  | show processlist |

+--------+------+-----------+------------+---------+------+-------+------------------+

1 row in set (0.00 sec)

===========================================================================================


#查看mysql日志设置情况

show variables like 'log%';



 - 创建在线峰值表 [acc_db].[acc_maxlinelog]

CREATE TABLE `acc_maxlinelog` (

`logid`  int(4) UNSIGNED NOT NULL AUTO_INCREMENT ,

`time`  int(4) UNSIGNED NOT NULL ,

`count_online`  int(4) UNSIGNED NOT NULL ,

`line`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,

PRIMARY KEY (`logid`),

INDEX `servertime` (`time`, `line`) USING BTREE ,

INDEX `time` (`time`) USING BTREE 

)

ENGINE=InnoDB

DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

AUTO_INCREMENT=1

ROW_FORMAT=COMPACT

;


===========================================================================================



你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):

mysql> show create table 表名;


update  account set platform='GZ' where platform='mlds';


新建一个字段id 表示文章号用来唯一标识文章 类型是整形 ,每个字段是一列

 id int  indentity(1,1) ,


新建一个字段title 表示文章标题  类型是字符型 长度是100

title varchar(100),


新建一个字段 表示文章内容

[content] text



查找article1表

select * from Article1


插入一行

insert into Article1 values(1,'中国暂停进口美国“吉普牧马人”越野车','中国国家质检总局8日晚20时发布公告:暂停进口美国三大车企之一克莱斯勒“吉普牧马人”越野车。' )

insert into Article1 values(2,'中国暂停进口美国“吉普牧马人”越野车','中国国家质检总局8日晚20时发布公告:暂停进口美国三大车企之一克莱斯勒“吉普牧马人”越野车。' )

select * from Article1


update Article1 set title='abc' where id=2


delete from Article1 where id =1 



select * from Article1 where title like ’%'a'%’

select count (*)  from Article1

select * from t2 where  title= 'abc'

select sum(id)  from Article1

select avg(id) as avgvalue from Article1

select max(id) as maxvalue from Article1

select min(id) as minvalue from Article1

select * from Article1 where title<>'abc'


mysql查询某表的行数

select count(*) from tablename;




select I.*,U.tablename1 from tablename2 I INNER JOIN users U  ON U.id=I.userid;


你可能感兴趣的:(mysql,命令)