在 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';
- 更改用户密码
# 格式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 privileges
11.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
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令!
推荐阅读
- Linux之killall命令
- 夏日泡泡小说中的经典语句
- 使用MySQL导入数据时出现乱码的两种解决方法
- c# 8个常用的.net类库
- Mysql Innodb 引擎解决并发问题
- 什么是MySQL存储引擎?
- MySQL七种JOIN类型,终于学明白了
- MySQL崩溃-修复损坏的innodb:innodb_force_recovery
- 常用的微信营销软件有哪些
- MySQL的select流程