• Ubuntu上mysql, 通过python连接报错Can't connect to MySQL server on xxx (10061)


    通过sqlyog连接ubuntu上的mysql报错

    试了试python直接连接也报同样的错

    那应该就是ubuntu上mysql服务自己的问题了

    查看mysql 版本

    mysql -V
    
    root@cloud:/etc/mysql# mysql -V
    mysql  Ver 14.14 Distrib 5.5.62, for debian-linux-gnu (x86_64) using readline 6.3
    

    解决过程

    查了下资料,mysql默认情况下,只允许localhost连接,需要手动开放其他所有IP的连接。

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '123456' WITH GRANT OPTION;
    flush privileges;  
    

    grant参数说明:

    权限名 all: 所有权限
    on 库名.表名 *表示所有
    to '授权用户名'@'授权IP地址'  所有IP用%
    identified by "该授权用户名对应的密码" 
    

    只有在user表中有的并匹配所有值才能够连接。

    修改了ip为pc的lanip,未生效。修改了ip未PC上端路由器的wanip,未生效。

    查看了下用户配置信息,外部IP连接数据库时,会根据当前user中的映射关系来进行放行和通过

    select host,user,plugin,authentication_string from mysql.user;
    

    所以上面再执行grant时,将多个root插入进来了。但是authentication_string为空,并没有插入正确。以为这里有问题,手动插入了plugin和密码

    update user set authentication_string='123456' where user='root';
    

    登录之后发现authentication_string是明文的,重新修改了下密码为密文:

    update user set authentication_string=password('123456') where user='root'
    

    重新使用sqlyog连接还是不行。。。

    最后还需要修改/etc/mysql这个目录下的my.cnf文件,打开大概45行有这么一段话

    # 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
    

    仅仅监听了localhost的请求,要将bind-address修改为0.0.0.0表示接受所有IP的请求

    bind-address		= 127.0.0.1
    

    终于连上了

    还是挺激动的。

  • 相关阅读:
    后台点赞 接口
    三表联查
    后台投票 接口
    MSXML insertBefore(IXMLDOMNode *newChild, VARIANT refChild) 传参
    WTL中菜单栏及工具栏项状态改变应注意的地方
    使用WTL的消息反射封装CEdit实现监听控件文本改变事件
    修改字体
    CEdit实现文本换行
    VC中获取窗口控件相对客户区的坐标
    关闭HTC手机充电时屏幕一直亮着绿色电池的办法
  • 原文地址:https://www.cnblogs.com/for-you/p/12546541.html
Copyright © 2020-2023  润新知