• MySQL疑02-用户权限表问题


    一 问题描述:

    在本地无法直接使用本地ip(192.168.3.73)连接数据库,需将主机ip设为127.0.0.1才可连接
    127.0.0.1为本地回环地址,专门用于本机网络测试

    import pymysql
    
    conn = pymysql.connect(
        # host = '127.0.0.1',            # 此处使用127.0.0.1正常连接
        host = '192.168.3.73',           # 此处改为本机的ip地址则如下报错
        port = 3306,
        user = 'root',
        password = '123',
        database = 'day48',
        charset = 'utf8'  # 编码千万不要加-
    )  # 链接数据库
    

    这是因为在MySQL的权限表中,未添加本机的ip地址,所以用本机ip来连接,会被拒接。

    二、解决方案

    2.1 查看权限表

    # 先查看当前数据库的权限表
    mysql> use mysql;
    mysql> select host,user from user;
    

    2.2 修改权限表

    mysql> update user set host = "192.168.3.73" where user="root";
    # 或 使用 update user set host = "%" where user = "root"; 来匹配所有ip地址,即让外部ip均可访问
    mysql> select host,user from user;
    

    三、用户表详解

    MySQL是一个多用户管理的数据库,可以为不同用户分配不同的权限,分为root用户和普通用户,root用户为超级管理员,拥有所有权限,而普通用户拥有指定的权限。

    MySQL是通过权限表来控制用户对数据库访问的,权限表存放在mysql数据库中,主要的权限表有以下几个:user,db,host,table_priv,columns_priv和procs_priv,先带你了解的是user表。

    通常用户信息、修改用户的密码、删除用户及分配权限等就是在mysql数据库的user表中。

    用户列(用户连接MySQL数据库需要输入的信息)

    Host:主机名,双主键之一,值为%时表示匹配所有主机。User:用户名,双主键之一。Password:密码名。

    (root,%),表示可以远程登录,并且是除服务器外的其他任何终端,%表示任意IP都可登录。
    (root,localhost), 表示可以本地登录,即可以在服务器上登陆,localhost则只允许本地登录。
    (root,127.0.0.1 ),表示可以本机登陆,即可以在服务器上登陆
    (root,sv01),表示主机名为sv1可以登陆,sv01具体指的哪台机器,可以在cat /etc/hostname查看
    (root,::1) , 表示本机可以登陆, 看密码都是相同嘛,具体::1代表意义,待查

    参照:https://www.cnblogs.com/liuhaidon/archive/2019/09/12/11511129.html

  • 相关阅读:
    【转载】make: Nothing to be done for `all'. 解决方法
    P4行为模型BMV2安装
    P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装
    P4factory ReadMe 剩余部分
    P4factory ReadMe Quickstart 安装p4factory
    Git 使用ssh密钥
    c++ 有swap函数
    c++ 引用
    topk两种解法
    xgboost和gbdt区别
  • 原文地址:https://www.cnblogs.com/zhubincheng/p/12846294.html
Copyright © 2020-2023  润新知