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