更改用户名:rename user jack to jacknew; (用户的都存在与user表中,更改名称,权限不变)
更改用户密码:update mysql.user set password=password(‘123456‘) where user=‘jack‘;
刷新授权表:flush privileges;
如果对root设置了密码,但是忘记了密码:
mysqld_safe --skip-grant-tables &
跳过授权表,再免密登陆,更改root的密码
将同样的权限同时授权于多个用户,示例如下
grant select on hellodb.* to zsy@localhost,zsythink@localhost;
只对某张表的某个字段授权,可以使用如下语句
grant select (name,age) on zsythink.students to zsy@localhost;
只想将test函数的权限授予zsy用
grant execute on function zsythink.test to zsy@‘192.168.%.%‘;
使用procedure关键字,指明是存储过程
grant execute on procedure zsythink.test to zsy@‘192.168.%.%‘;
如果用户有可能会跨越不安全的网络连接到数据库,我们可以强制用户使用ssl建立会话
grant usage on . to ‘zsy‘@‘222.222.222.222‘ require ssl;
如果想要取消上述的ssl连接限制
grant usage on . to ‘zsy‘@‘222.222.222.222‘ require none;
管理员还可以通过如下选项对用户进行一些其他的限制
MAX_QUERIES_PER_HOUR:限制用户每小时执行的查询语句数量;
MAX_UPDATES_PER_HOUR:限制用户每小时执行的更新语句数量;
MAX_CONNECTIONS_PER_HOUR:限制用户每小时连接数据库的次数;
MAX_USER_CONNECTIONS:限制用户使用当前账号同时连接服务器的连接数量;
无限制为0
查看用户被授予的权限:show grants for wang@‘192.168.194.%‘\G;
查看用户对库有哪些权限:select * from mysql.db where Db=‘test‘\G;
回收用户的权限:revoke update on jack.test from wang@‘192.168.194.%‘ ;
创建数据库比存在就创建:create database if not exists testdb default character set utf8;
查看可用字符集:show charactre set;
查看某数据库的字符设置:use testdb;status; =========可查看到服务器和当前库及当前用的信息
查看库对应的权限:select * from mysql.db where Db="testdb"\G;
查看排序方式:show collation;
修改字符集和字符排序规则是二选一的
修改数据库的字符集:alter database testdb character set utf8;
设置库的默认字符集:alter database testdb default character set utf8;
默认在此库下创建的表都会继承此字符集
创建表并查看字符集:create table w(name varchar(15),age int);
查看库中所有表的信息:show table status\G;
查看单个表的信息:show table status where Name="user"\G;
删除数据库: drop database if exists testdb;
查看创建数据库和创建表的语句:
show create database testdb\G;
show create table w\G;
####################################################
创建表结构:
create table if not exists wang.w(
id int primary key auto_increment,
name varchar(50) not null,
age int(10),
address varchar(150) not null,
phone bigint(11) unique,
schoolname varchar(50) not null,
gender enum(‘F‘,‘M‘) character set utf8 default ‘M‘,
hobby varchar(200) character set utf8
) engine=Innodb charset=utf8 auto_increment=1;
如果下sql语句,最好加上if not exists ,避免重复生成表,覆盖数据
根据现有表,创建新表(会将之前数据赋值过来):
create table h select 字段 from w;
只要结构不要数据:
create table h like w;
更改表名:alter table h rename as www;
删除表中字段:alter table h del 字段;
新增表字段:alter table h add 字段 属性;
更改字段名和属性:alter table h change 字段名 字段名 属性;
更改字段的属性: alter table h modify 字段名 属性;
删除表中字段:alter table h drop 字段名;
############################################################