zoukankan      html  css  js  c++  java
  • 配置mysql允许远程链接

    默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。

    修改用户表的数据

    登入mysql后,更改 mysql 数据库里的 user 表里的 host 项,将localhost改称%

    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    

    修改授权

    例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。

    mysql>GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES
    

    例如:如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES
    

    检查防火墙

    如果还不能连接,就可能是防火墙的锅了。

    #通过systemctl status firewalld查看firewalld状态
    #FirewallD is not running
    systemctl unmask firewalld            
    
    systemctl start firewalld
    #再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
    #再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
    firewall-cmd --reload
    
    
    systemctl stop firewalld.service   #关闭防火墙
    

    修改mysql配置文件

    如果检查了防火墙还是不行,那就用最后一招,修改配置文件(博主用了最后一招才解决远程访问的问题)

    my.cnf配置文件的位置,一般在/etc/my.cnf,有些版本在/etc/mysql/my.cnf

    在配置文件中,增加2行代码

    [mysqld]
    bind-address = 0.0.0.0
    

    重启服务,远程访问,发现可以正常访问了

    p.s.

    mysql8.0版本配置方法不同,按照上述方法配置之后,Navicat可以正常连接,但是nodejs代码连接报错

    Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    

    解决办法(修改加密规则为普通模式,默认是严格加密模式):

    依次输入以下语句

    mysql>ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxxxx' PASSWORD EXPIRE NEVER
    mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';
    mysql>FLUSH PRIVILEGES;
    

    nodejs测试数据库连接,应该就可以使用了

  • 相关阅读:
    【Android】升级ADT 22 引发的错误
    【Android】使用SearchView时软键盘不支持actionSearch的问题
    Mac 升级 OS X 10.8.2 后 VirtualBox 无法启动的问题
    2012年总结
    【Andorid X 项目笔记】魅族照片剪切问题(4)
    【读书笔记】浪潮之巅
    ormlite更改数据库默认位置
    Android实用代码七段(二)
    Android实用代码七段(三)
    【Android】嵌套Fragment无法接收onCreateOptionsMenu事件的问题
  • 原文地址:https://www.cnblogs.com/wuotto/p/9682536.html
Copyright © 2011-2022 走看看