mysql远程数据库权限分配

手上有多台服务器,就拿出一台专门做数据库服务器

前提条件

总有有两台服务器分别为服务器A和服务器M,A作为网站服务器,M作为数据库服务器。

服务器名称

服务器IP

备注

服务器A

115.115.115.155

站点运行服务器

服务器M

117.117.117.117

mysql服务器

首先配置M服务器

  • 增加数据库用户

    参考create uer

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE USER
    user [auth_option] [, user [auth_option]] ...

    user:
    (see Section 7.2.3, “Specifying Account Names”)

    auth_option: {
    IDENTIFIED BY 'auth_string'
    IDENTIFIED BY PASSWORD 'hash_string'
    IDENTIFIED WITH auth_plugin
    IDENTIFIED WITH auth_plugin AS 'hash_string'
    }

    #示例
    CREATE USER 'wpuser'@'localhost ip' IDENTIFIED BY 'password';
    #这里我创建了一个wpuer密码为password,你可以根据自己的要求修改password定义的host为localhost,当你使用远程另外一台服务器连接的时候,可以将这个localhost更改为远程服务器的IP地址比如这里的服务器A,地址为115.115.115.115
  • 分配权限

    参考grant

    1
    2
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
    # 针对对worpress这个数据库,为wpuser用户分配了所有的权限。你可以将localhost更改为服务器A的地址115.115.115.115
  • 远程服务器测试登录

    切换为服务器A,尝试登录服务器M

    1
    2
    3
    4
    5
    6
    mysql -u user -h database_server_IP -p

    #示例
    mysql -u wpuser-h 115.115.115.115 -p
    输入密码

  • 报错

    ERROR 2003 (HY000): Can’t connect to MySQL server on ‘115.115.115.115’ (111)

    回到服务器M上,修改 my.cnf。 my.cnf一般在/etc/mysql下面,如果不在,使用locate my.cnf查找,修改前的my.cnf配置文件为:  修改前的my.cnf配置文件代码  修改前:

    1
    2
    3
    4
    5
    # 
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address = 127.0.0.1
    #

    修改后

    1
    2
    3
    4
    5
    # 
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #bind-address = 127.0.0.1 屏蔽这条配置
    #

    最后 重启一下你的mysql服务器

    1
    sudo service mysql restart

mysql官网 digitalocean参考教程