mysql基础实用命令
登录mysql,如果没有密码直接mysql就行了,如果有密码 mysql -u root -p
创建密码
mysqladmin -u root password '123456'
登录后创建或修改密码 localhost可以写为127.0.0.1或主机名'test.centos.com'
mysql> set password for 'root'@ 'localhost'= password ( '112233'); 或
mysql> update mysql. user set password=password( '654321') where user= 'root' and host= 'localhost';
#注意,如果不加where和后面的参数,所有的用户密码都被改了;password=后面不加password的话密码将以明文显示.
如果在家目录中建立一个隐藏文件叫.my.cnf
vim .my.cnf
[client]
user=root
password=654321
之后你再登录就直接使用mysql就可以登录服务器了。
刷新
mysql> flush privileges;
查看默认的用户
mysql> select host, user,password from mysql. user;
默认有3个root账户,和2个匿名账户
将这两个匿名用户删除
mysql> delete from mysql. user where user= '';
mysql> drop user ''@localhost;
授权访问.建立一个用户root,host为%表示来自任何主机,都可以使用密码654321连接.这样做很危险.
mysql> grant all privileges on *.* to root@ '%' identified by '654321';
mysql> grant all privileges on *.* to maoxian@ '192.168.81.129' identified by '654321';
在192.168.81.129机器上可以登录
[root@test1 ~]# mysql -u maoxian -h 192.168.81.128 -p
创建数据库,悲剧的是我老是将database错打成datebase.
mysql> create database maoxiandb; //创建数据库.
mysql> show databases; //查看所有数据库.
mysql> drop database maoxiandb; //删除数据库.
mysql> use maoxiandb; //使用(进入)数据库
mysql> show tables; //查看该数据库中的所有表.
创建表.
下面创建一个具有三列的表。id 列为PRIMARY KEY,其余两列组成一个索引:
create table name(
id int not null auto_increment,
first_name varchar(30) not null,
last_name varchar(30) not null,
primary key (id),
index (last_name,first_name)
);
查看表信息.
向表中插入信息.
mysql> insert into name (first_name,last_name) values ( 'mao', 'xian') ;
查看表中数据.
mysql> select * from name;
mysql> select * from name where first_name= 'xian';
mysql> select * from name where first_name= 'xian' and last_name= 'mao';
排序 ORDER BY clause
ASC 升序(默认)
DESC 降序
mysql> select * from name order by id desc;
限定显示前多少行
LIMIT n 表示显示前n行
mysql> select * from name limit 1;
mysql> select * from name limit 2,10; 表示跳过前2行,显示后面10行信息
消除重复行
DISTINCTF放在SELECT后面,就不显示重复的行了.
mysql> select distinct * from name;
统计,分组 GROUP BY.
mysql> select first_name, count(*) from name; // count(*)表示统计多少行.
mysql> select first_name, count(*) from name group by first_name;
修改显示出来的字段名.
mysql> select first_name from name;
mysql> select first_name as first from name;
设置使用变量
mysql> set @first= 'mao';
mysql> select first_name from name where first_name=@first;
修改表中的信息
mysql> update name set first_name= 'xian'; //修改所有first_name为xian.
mysql> update name set first_name= 'mao' limit 2; //修改前两行first_name为mao.
mysql> update name set first_name= 'mao' where last_name= 'xian'; //修改last_name为xian的行中的first_name为mao.
删除表中的数据
mysql> delete from name where id=1; //删除id为1的行
mysql> delete from name where first_name= 'xian'; //删除first_name为xian的所有行
删除表
mysql> drop table name ; //删除表,删除了就找不回来了.切忌!
mysql> drop table if exists name;
创建用户
mysql> create user maoxian@ 'localhost' identified by '654321';
localhost可以用%表示任意主机,此时用户具有的权限非常低
对用户做访问控制
mysql> grant create on maoxiandb.* to 'maoxian'@ 'loaclhost' ;
给maoxian删除的权限
mysql> grant drop on maoxiandb.* to 'maoxian'@ 'localhost';
maoxian的权限是叠加的,如果你给他创建的权限,再给他删除的权限,此时他就具有这俩个权限了。
给maoxian查询的权限
mysql> grant select on maoxiandb.* to 'maoxian'@ 'localhost';
收回 SELECT权限
mysql> revoke select on maoxiandb.* from 'maoxian'@ 'localhost';