当前位置: 代码迷 >> 综合 >> MySQL5.7创建数据库与添加用户、删除用户及授权
  详细解决方案

MySQL5.7创建数据库与添加用户、删除用户及授权

热度:82   发布时间:2024-02-21 16:10:49.0

MySQL安装启动成功后,首先我们需要创建数据库,然后创建一个用户去操作这个数据库。

1、创建数据库

// 登录MySQL客户端:mysql -h [ip] -u[username] -p[password]
C:\Users\Administrator>mysql -h 127.0.0.1 -uroot -p"root"
// 创建数据库,指定字符集
mysql> CREATE DATABASE `apollodb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
// 查看数据库是否创建成功
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| apollodb           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)//如果库名写错了,当然如果库名创建错了,也可以使用命令进行删除,然后重新创建:
mysql> drop database apollodb;

2、MySQL添加用户、删除用户、更改密码及授权

2.1、添加用户

跟以往版本不同,MySQL5.7 mysql.user表没有password字段,这个字段改成了 authentication_string;

这里我们使用命令进行创建用户:

// 创建了一个名为:dev001 密码为:123456 的用户	
mysql> create user 'dev001'@'localhost' identified by '123456';
// 注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。
// 如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。
// 也可以指定某台机器ip可以远程登录。
// ##### 实际开发用“%”方式 #####
mysql> create user 'dev001'@'%' identified by '123456';
  • username:你将创建的用户名。
  • host:指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录。
  • password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

2.2、删除用户

// 删除用户“dev001”
mysql> drop user dev001@localhost ;
// 若创建的用户允许任何电脑登陆,删除用户如下
mysql> drop user dev001@'%';

2.3、更改密码

// 方法1,密码实时更新;修改用户“dev001”的密码为“1qaz@WSX”
mysql> set password for dev001=password('1qaz@WSX');// 方法2,需要刷新;修改用户“dev001”的密码为“1qaz@WSX”
mysql> update mysql.user set password=password('1qaz@WSX') where user='dev001'
// 刷新权限
mysql> flush privileges;

2.4、授权

// 策略一:授予用户kvstore通过外网IP对数据库“apollodb”的全部权限
mysql> grant all privileges on apollodb.* to 'dev001'@'%' identified by '1qaz@WSX';
// 刷新权限
mysql> flush privileges;// 策略二:授予用户“dev001”通过外网IP对于该数据库“apollodb”中表的创建、修改、删除权限,以及表数据的增删查改权限
mysql> grant create,alter,drop,select,insert,update,delete on apollodb.* to dev001@'%';
// 刷新权限
mysql> flush privileges;// 策略三:授权dev001用户拥有所有数据库的某些权限
mysql> grant select,delete,update,create,drop on *.* to dev001@'%' identified by '1qaz@WSX';
// 刷新权限
mysql> flush privileges;

privileges:用户的操作权限,如select,delete,update,create,drop等;如果要授予所有的权限可使用all;% 表示对所有非本地主机授权,不包括localhost。

2.5、查看用户权限

// 查看用户“dev001”
mysql> show grants for dev001;
+------------------------------------------------------+
| Grants for dev001@%                                  |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev001'@'%'                   |
| GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)

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

最后用MySQL的dev001用户登录查看是否有对apollodb数据库的操作权限:

C:\Users\Administrator>mysql -h 192.168.0.200 -udev001 -p"1qaz@WSX"
mysql> mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| apollodb           |
+--------------------+
2 rows in set (0.00 sec)mysql> show grants for dev001;
+------------------------------------------------------+
| Grants for dev001@%                                  |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev001'@'%'                   |
| GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)


  

 

 

 

  相关解决方案