zoukankan      html  css  js  c++  java
  • 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
    

    终于连上了

    还是挺激动的。

  • 相关阅读:
    RAC安装时,报The specified nodes are not clusterable 的解决方法
    Unix sar 命令
    Linux 修改 IP地址 和 网关
    Oracle ASM 详解
    RAC安装时需要执行4个脚本及意义
    RAC 的一些概念性和原理性的知识
    Oracle 10g RAC 启动与关闭
    Oracle RAC 修改 IP 地址
    Linux 时间同步配置
    RAC安装时,报The specified nodes are not clusterable 的解决方法
  • 原文地址:https://www.cnblogs.com/for-you/p/12546541.html
Copyright © 2011-2022 走看看