首页 > 数据库 >php mysql创建库 创建用户 并授权用户可使用的库 - mysql权限管理例子

php mysql创建库 创建用户 并授权用户可使用的库 - mysql权限管理例子

时间:2022-09-25 05:22:06浏览次数:73  
标签:real 创建 mysql 用户 echo query sql mysqli

以下是php代码,可以复制起来测试测试 

$dbname="ceshi1222_com";
$username="user222";

//创建库
$sql="CREATE DATABASE {$dbname} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
if(mysqli_real_query($con,$sql)){echo "创建库成功<br>";}else{echo "创建库失败<br>";}


//创建用户
$sql="CREATE USER '{$username}'@'localhost' IDENTIFIED BY '密码'";
if(mysqli_real_query($con,$sql)){echo "创建用户成功<br>";}else{echo "创建用户失败<br>";}
//保险起见 可以同时创建一个127.0.0.1地址的  省的以后麻烦
$sql="CREATE USER '{$username}'@'127.0.0.1' IDENTIFIED BY '密码'";
if(mysqli_real_query($con,$sql)){echo "创建用户成功<br>";}else{echo "创建用户失败<br>";}



//赋予USAGE权限 详细了解请搜索  USAGE权限
//字面意思: 授予使用权 在所有库.所有表
$sql="GRANT USAGE ON *.* TO '{$username}'@'localhost'";
if(mysqli_real_query($con,$sql)){echo "赋予USAGE权限成功<br>";}else{echo "赋予USAGE权限失败<br>";}
$sql="GRANT USAGE ON *.* TO '{$username}'@'127.0.0.1'";
if(mysqli_real_query($con,$sql)){echo "赋予USAGE权限成功<br>";}else{echo "赋予USAGE权限失败<br>";}


//赋予管理某个库的权限  详情可以搜索 mysql GRANT命令
//字面意思: 授予所有特权 在某库的所有表 TO 某用户
$sql="GRANT ALL PRIVILEGES ON `{$dbname}`.* TO `{$username}`@'localhost'";
if(mysqli_real_query($con,$sql)){echo "{$dbname}授权给用户成功<br>";}else{echo "{$dbname}授权给用户失败<br>";}
$sql="GRANT ALL PRIVILEGES ON `{$dbname}`.* TO `{$username}`@'127.0.0.1'";
if(mysqli_real_query($con,$sql)){echo "{$dbname}授权给用户成功<br>";}else{echo "{$dbname}授权给用户失败<br>";}

//刷新权限  盲猜不执行也可以  不过执行了也没啥副作用
mysqli_real_query($con,"FLUSH PRIVILEGES");

//测试连接
if(mysqli_connect('localhost',$username,'密码')){
    echo "登录成功<br>";
}else{
    echo "登录失败<br>";
}


//删除用户  授权的ip要分别删除  删除前要判断用户是不是 root  千万别误把root帐号删了
/*
$sql="drop user '要被删除的用户'@'localhost'";
$sql="drop user '要被删除的用户'@'127.0.0.1'";
*/

在折腾的过程中 遇到了个很奇葩的事情  竟然在删除用户的时候 不小心把root帐号给删除了。。好在是测试环境 没啥重要东西  

搜了下 也不太好解决 最后直接把mysql重新安装一遍

标签:real,创建,mysql,用户,echo,query,sql,mysqli
From: https://www.cnblogs.com/qq9836/p/16727159.html

相关文章

  • mysql root用户远程登录并获取所有权限
    远程登录必须要满足三个条件1:服务器要对外开放3306端口2:要有远程操作的权限端口就不说了 主要记录一下权限的设置方法依次执行下面四条命令在本机先使用root用户......
  • MySQL相关知识
    一、SQL分类:DDL;数据定义语言;凡是带有create、drop、alter等数据定义语言(主要操作的是表的结构,不是表的数据。)DQL:数据查询语言;凡是带有select关键字的都是数据......
  • MySQL双主同步的实现
    双主复制:在两个节点上都可以写入数据,互为主从节点。解决单点失败的问题:一个主节点失败,所有节点都会失败。双主配置:(1)各节点使用一个惟一server_id(2)都......
  • MYSQL锁机制行锁、表锁、死锁的实现
    一、MYSQL锁是什么?有什么类别锁定义: 同一时间同一个资源只能被一个线程访问 乐观锁和悲观锁乐观锁用的最多的就是数据库中的表加了一个标识字段version 例如......
  • MySQL主从复制常见问题及解决方法
    在从节点清除信息前提:停止slave的相关线程:stopslaveRESETSLAVE#从服务器清除master.info,relay-log.info,relaylog,开始新的relaylogRESETSLAVE ALL#清除所......
  • 为什么MySQL 默认隔离级别是RR,又被阿里设置为RC
    我们知道,我们可以通过这个命令查看数据库当前的隔离级别,MySQL默认隔离级别是RR. select@@tx_isolation; ANSI/ISOSQL定义的标准隔离级别有四种,从高到底依次为:可序......
  • mysql将字符串类型字段后面的小数点和零去掉
    背景现有student表,表中的学生年龄student_age字段中的值,是通过读取excel中的信息后更新到数据库中,但是因为处理不当,导致年龄的均带有.0,如28.0实际上应该是28。我们需要将......
  • 13.8 __new__与__init__演示创建对象的过程
     '''__new__用于创建对象,__init__把创建的对象初始化'''classPerson(object):def__new__(cls,*args,**kwargs):print('__new__被调用执行了,cls的......
  • sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2026, '
    sqlalchemy.exc.OperationalError:(MySQLdb._exceptions.OperationalError)(2026,'SSLconnectionerror:unknownerrornumber')问题:使用sqlalchemy查询mysql数据时......
  • MySQL面试题
    MySql项目中使用的存储引擎5.0之前默认存储引擎为MyISAM引擎索引只有一种,被索引的字段值作为索引数据,叶子节点还包含该记录数据页地址不支持事务没有undolog......