常用SQL语句,看这篇就够了( 六 )


在 MySQL 的UUID()函数中,前三组数字从时间戳中生成,第四组数字暂时保持时间戳的唯一性,第五组数字是一个IEEE 802节点标点值,保证空间唯一 。
使用 UUID() 函数,可以生成时间、空间上都独一无二的值 。据说只要是使用了 UUID,都不可能看到两个重复的 UUID 值 。当然,这个只是在理论情况下 。
使用方法也很简单,在sql可以直接当成函数调用即可!
select uuid();10.4、UUID_SHORT() 函数在 MySQL 5.1 之后的版本,提供UUID_SHORT()函数,生成一个64位无符号整数,在JAVA中可以用Long类型接受 。另外,需要注意的是,server_id 的范围必须为0-255,并且不支持 STATEMENT模式复制,否则有可能会产生重复的ID
select UUID_SHORT();同时,需要注意的是,UUID_SHORT()返回的是unsigned long long类型,在字段类型设置的时候,一定要勾选无符号类型,否则有可能生成的ID超过Long类型最大长度!
11、用户权限11.1、用户管理

  • 查询所有用户
select * from mysql.user;
  • 创建用户
# 格式CREATE USER 'username'@'host' IDENTIFIED BY 'password';# 例子,创建一个用户名为admin,密码123456,可以本地访问的用户CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';
  • 更改用户密码
【常用SQL语句,看这篇就够了】# 格式SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');# 例子,将用户名admin,密码修改为456789,可以本地访问的用户SET PASSWORD FOR 'admin'@'localhost' = PASSWORD("456789");
  • 删除用户
# 格式DROP USER 'username'@'host';# 例子,删除用户名为admin的用户DROP USER 'admin'@'localhost';
  • 最后刷新操作,使操作生效
#刷新操作使其生效flush privileges11.2、用户权限管理
  • 查询用户权限
# 格式SHOW GRANTS FOR 'username'@'host'# 查询用户名为 'root'@'%'的权限信息SHOW GRANTS FOR 'root'@'%'
  • 给用户授予某种权限
# 格式GRANT privileges ON databasename.tablename TO 'username'@'host'说明:
  • privileges:用户的操作权限,如SELECT,INSERT,UPDATE、DELETE等,如果要授予所的权限则使用ALL
  • databasename:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
  • username:用户名
  • host:可以访问的域名
在给其他授权前,请先用管理员账户登录!
1、设置用户访问数据库权限
  • 设置用户testuser,只能访问数据库test_db,其他数据库均不能访问
grant all privileges on test_db.* to 'testuser'@'localhost';
  • 设置用户testuser,可以访问mysql上的所有数据库
grant all privileges on *.* to 'testuser'@'localhost';
  • 设置用户testuser,只能访问数据库testuser的表user_info,数据库中的其他表均不能访问
grant all privileges on test_db.user_info to 'testuser'@'localhost';2、设置用户操作权限
  • 设置用户testuser,拥有所有的操作权限,也就是管理员
grant all privileges on *.* to 'testuser'@'localhost';
  • 设置用户testuser,只拥有【查询】操作权限
grant select on *.* to 'testuser'@'localhost';
  • 设置用户testuser,只拥有【查询/插入/修改/删除】操作权限
grant select,insert,update,delete on *.* to 'testuser'@'localhost';3、设置用户远程访问权限
  • 设置用户testuser,只能在客户端IP为192.168.1.100上才能远程访问mysql
grant all privileges on *.* to 'testuser'@'192.168.1.100';
  • 设置所有用户可以远程访问mysql,修改my.cnf配置文件,将bind-address = 127.0.0.1前面加#注释掉
# bind-address = 127.0.0.1注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令!


推荐阅读