美文网首页
mysql基础管理--服务启动/关闭、开启远程连接

mysql基础管理--服务启动/关闭、开启远程连接

作者: ThinkingCoding | 来源:发表于2019-07-12 12:02 被阅读0次

    服务开启

    使用 safe_mysqld 启动:sudo safe_mysqld &

    服务关闭

    mysqladmin shutdown

    开启远程连接

    1. 创建开启 MySQL 的远程登陆帐号

    首先 需要有允许远程登录的账号,找到mysql数据库的user表。在user表中新建一条数据,设置User(username)和Host(开放访问MySQL的IP:例如123.118.17.201)以及登录密码。这样就设置了允许访问的用户名和IP地址(若想所有IP都可以访问,则可将Host设置为‘%’,但是这样很危险,一般不建议)。

    通过grant命令创建

    若想admin账户使用admin_password从任何主机连接到mysql服务器

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
    

    若想仅允许用户admin从ip为235.97.20.51 的主机连接到mysql服务器,并使用admin_password作为密码

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'235.97.20.51' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
    
    通过insert + update语句创建
    刷新权限

    修改完user表后执行 flush privileges 刷新权限。

    2. 配置文件开启远程访问

    mysql中的配置文件可能会限制远程访问,可以通过ss命令查看mysql的连接端口情况:
    使用 ss -tlnp 命令查看网络接口开启状态


    image.png

    若如上图所示,或者没有开启3306端口。则mysql仅允许服务器本地访问。

    打开 MySQL 配置文件 my.cnf(/etc/mysql/my.cnf)
    找到

    bind-address = 127.0.0.1
    

    或者

    skip-networking
    

    直接注释掉,然后重启mysql。

    skip-networking : 开启 skip-networking 选项可以彻底关闭MySQL的TCP/IP连接方式。
    bind-address = 127.0.0.1 : 若bind-address=127.0.0.1则表示mysql实例只能被本机连接,若bind-address=0.0.0.0或者不设置,则mysql可以被远程访问

    注意:mysql的启动配置文件可能在/etc/mysql/mysql.conf.d/mysqld.cnf中,请更改那里的bind参数

    iptables防火墙设置

    通过iptables可以更细粒度地实现控制哪些可以访问,哪些不可以访问

    阻止外部访问mysql:

    iptables -A INPUT -p tcp --dport 3306 -j DROP
    

    允许某个ip(替换xxx.xxx.xxx.xxx)访问,但是拒绝其他ip的访问

    iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
    iptables -A INPUT -p tcp --dport 3306 -j DROP
    

    注意:需要在DROP前添加那个 ACCEPT 命令

    参考文章

    https://blog.csdn.net/qq_16885135/article/details/53096451
    https://www.a2hosting.com/kb/developer-corner/mysql/restricting-mysql-port-access

    相关文章

      网友评论

          本文标题:mysql基础管理--服务启动/关闭、开启远程连接

          本文链接:https://www.haomeiwen.com/subject/qnbjkctx.html