欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql 创建数据库,添加用户,用户授权

程序员文章站 2022-07-14 16:22:18
...

一、创建mysql数据库

1.创建数据库语法

--创建名称为“testdb”数据库,并设定编码集为utf8
CREATE DATABASE IF NOT EXISTS testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

二、创建用户(mysql是先创建数据库,在创建用户,然后把数据的权限分配给用户;oracle是先创建用户,后创建数据库)

1.新建用户

 --创建了一个名为:test 密码为:1234 的用户
 create user 'test'@'localhost' identified by '1234';

注意:
此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

2.查询用户

--查询用户
select user,host from mysql.user;

3.删除用户

--删除用户“test”
drop user [email protected] ;
--若创建的用户允许任何电脑登陆,删除用户如下
drop user [email protected]'%';

4.更改密码

--方法1,密码实时更新;修改用户“test”的密码为“1122”
set password for test =password('1122');
--方法2,需要刷新;修改用户“test”的密码为“1234”
update  mysql.user set  password=password('1234')  where user='test'
--刷新
flush privileges;

5.用户分配权限

-- 给用户赋值权限,授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on testdb.uesr_info to [email protected] identified by '1234'; 
--刷新权限
flush privileges; 

6.查看用户权限

--查看用户“test”
show grants for test;

注意:修改完权限以后 一定要刷新服务,或者重启服务,刷新服务用:flush privileges;

**

解决办法 grant all privileges on . to [email protected] identified by ‘1’;

     flush privileges;

拿 joe 1 登陆

附:

mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

**1.**权限1,权限2,…权限n代表select,insert,update,delete…等14个权限。
2..当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
**3.*当数据库名称.表名称被.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
**4.**用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
5.‘连接口令’不能为空,否则创建失败。
例如:
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql>grant all privileges on vtdc.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on . to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on . to [email protected] identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

**