mysql常用语句

> show databases;                    (查看当前存在的数据库)
> use mysql;                         (切换到数据库mysql)
> show tables;                       (查看数据库中的表信息)
> describe user;                     (显示user表的信息)
> create database auth               (创建新的数据库auth)

> create database auth default character set utf8 collate utf8_general_ci;  (指定字符集为utf8,否则中文会乱码)

> use auth;
> create table users (user_name char(30) not null,user_passwd char(20) not null default

'123456',primary key (user_name));       (建名为users的表)
> drop table auth.users;                        (删除数据库auth中的users表)
> drop database auth;                                  (删除数据库auth)
> insert into auth.users(user_name,user_passwd) values('zhangsan',encrypt('123456'));            

       (在表users中插入用户名zhangsan和密码123456)
> select * from auth.users;                     (查看users中的数据记录)
> update auth.users set user_passwd=encrypt('654321') where user_name='zhangsan';                

            (更改用户的密码:密文)
> update mysql.user set password=password('123456') where user='root';(明文)


> alter table aa drop bb; (删除aa表中的bb字段)

> alter table aa add bb int not null; (为aa表添加bb字段,int类型,非空)

> alter table aa modify bb varchar(100); (修改aa表的bb字段类型为varchar,100字节)



> flush privileges;                (刷新用户信息)
> delete from auth.users where user_name='zhangsan'; (删数据库auth中的表users里的用户zhangsan)
> delete from mysql.user where user_name user=' ';  (删除数据库mysql中的user表里的空用户)
> grant all on auth.* to admin1@'localhost' identified by '123456';  (授权用户admin1,允许其从本

机连接到mysql服务器,对auth数据库的所有表具有完全权限)
> grant select on auth.* to admin2@'192.168.0.0/24' identified by '123456';(授权admin2,允许其从

网段192.168.0.0/24中访问mysql服务器,可以查询auth库中的所有表)
> grant select,insert on auth.* to admin3@'%.benet.com' identified by '1234';(授权用户admin3,允

许其从benet.com域内的任何主机访问mysql服务器,对auth库中的所有表具有查询、插入的权限)
> show grants for root@'localhost'; (查看用户root从本机连接到mysql服务器时的权限)
> show grants for admin3@'%.benet.com'; (查看用户admin3从benet.com域内的客户机访问mysql服务器时

的权限)
> revoke all on auth.* from admin3@'%.benet.com'; (撤销用户admin3从benet.com域内访问数据库auth的

所有权限)




查看数据库上设置的账号及对应ip访问(上面grant设的账号及对应ip都可看到):

> use mysql;

> select * from user;   


给普通账号备份的权限:

> grant select,reload,lock tables on *.* to xxxx@'xxxxx' identified by 'xxxxxx';



> exit   或   quit            (退出)

# mysqldump - u root - p auth > mysql-auth.sql   密码  (备份整个auth数据库)

# mysqldump - u root - p'123456' auth > mysql-auth.sql  (带密码备auth数据库,做自动备份时有用)

# mysqldump - u root - p mysql user > mysql_user.sql 密码  (备份数据库mysql中的user表)

# mysqldump - u root - p --all-databases > mysql-all.sql  密码 (备份所有数据库的内容)
# mysql - u root - p < mysql-all.sql  (恢复备份文件mysql-all.sql)
# mysql - u root - p auth < mysql-auth.sql  (恢复单个数据库时需指定目标数据库名称) 

# mysql - u root - p mysql < mysql_user.sql 密码  (恢复数据库mysql的user表,恢复单个表时只需指定库名即可)


修改表名:

> rename table aa to bb;


修改表字段名:


alter table 表名 change 旧字段名 新字段名  字段类型


> alter table aa change bb cc varchar(50);



不进入mysql而执行mysql语句(可以是任何sql语句):

 

# mysql -u root -p'123456' -e "show databases;"

   

# mysql -u root -p'123456' -e "create database aa;"


取消mysql的大小区分:


# vi /etc/mysql/my.cnf


lower_case_table_names=1  (0为区分,1为不区分,默认为0)

:wq


# service mysql restart