zoukankan      html  css  js  c++  java
  • 部署mysql后,无法设置用户远程登陆(%只所有用户,不可以,只能给指定的ip?)

    MySQL允许远程访问的设置

    1.注释bind-address = 127.0.0.1。

    代码如下:

    >sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    将bind-address = 127.0.0.1注释掉(即在行首加#),如下:

    代码如下:

    # 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

    除了注视掉这句话之外,还可以把后面的IP地址修改成允许连接的IP地址。但是,如果只是开发用的数据库,为了方便起见,还是推荐直接注释掉。

    从上面的注释中,可以看出,旧版本的MySQL(从一些资料上显示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用旧版本的小伙伴请注意一下。

    2.删除匿名用户

    登录进数据库:

    代码如下:

    >mysql -uroot -p123456


    然后,切换到数据库mysql。SQL如下:

    代码如下:

    use mysql;


    然后,删除匿名用户。SQL如下:

    代码如下:

    delete from user where user='';

    3.增加允许远程访问的用户或者允许现有用户的远程访问。

    接着上面,删除匿名用户后,给root授予在任意主机(%)访问任意数据库的所有权限。SQL语句如下:

    代码如下:

    mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;


    如果需要指定访问主机,可以把%替换为主机的IP或者主机名。另外,这种方法会在数据库mysql的表user中,增加一条记录。如果不想增加记录,只是想把某个已存在的用户(例如root)修改成允许远程主机访问,则可以使用如下SQL来完成:

    代码如下:

    update user set host='%' where user='root' and host='localhost';

    4.退出数据库

    代码如下:

    mysql> exit

    在MySQL Shell执行完SQL后,需要退出到Bash执行系统命令,需要执行exit。因为这个太常用也太简单。以下内容就提示“退出”,不再重复列出这个命令。

    5.重启数据库

    完成上述所有步骤后,需要重启一下数据库,才能让修改的配置生效。执行如下命令重启数据库:

    代码如下:


    >sudo service mysql restart

  • 相关阅读:
    用powershell启动appfabric报错
    对引用和指针使用以及函数返回引用和指针类型的理解
    数组指针和数组引用做参数的区别(是否能够限定数组大小、数组降价)
    C++静态成员函数基本概念讲解
    函数中变量的生存期和作用域
    如何在Source Insight中配置Pc Lint
    iterator与const_iterator
    周数据转换为天数据的一个Sql数据查询
    如何提高结构对象作为键的哈希表的查找速度
    尽量用iterator代替const_iterator
  • 原文地址:https://www.cnblogs.com/zhangdaicong/p/7903968.html
Copyright © 2011-2022 走看看