zoukankan      html  css  js  c++  java
  • Ubuntu下Python使用MySQLdb远程连接数据库的常见问题及解决方案

    本文基于http://www.cnblogs.com/fnng/p/3565912.html这篇博文,学习使用MySQLdb过程中遇到下面这些问题。

    1. 安装MySQLdb时运行sudo python setup.py install报错EnvironmentError: mysql_config not found

    在安装 mysql-python时,会出现:

    sh: mysql_config: not found
    Traceback (most recent call last):
      File "setup.py", line 15, in <module>
        metadata, options = get_config()
      File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found

    原因是没有安装:libmysqlclient-dev

    sudo apt-get install libmysqlclient-dev

    自己电脑上做到这里就完成了。原文里还有以下步骤,如果还是不能安装可以试试。

    找到mysql_config文件的路径

    sudo updatedb
    locate mysql_config

    mysql_config的位置为:/usr/bin/mysql_config

    在mysql-python源码包下找到:setup_posix.py 文件,然后找到文件中的 mysql_config.path 将其值改为:/usr/bin/mysql_config,然后 sudo python setup.py install ,就ok了

    参考文献:http://www.cnblogs.com/xiazh/archive/2012/12/12/2814289.html

    2.import MySQLdb UserWarning错误

    原因是,install后MySQLdb模块已经被放到python的site-pachages目录中;但在当前目录也存在相同的模块,所以可能会重复导入。只要切换到其他目录运行就可以了。

    参考文献:http://blog.csdn.net/jiang1013nan/article/details/6270791

    3. 远程连接报错ERROR 1130: Host '115.1XX.X.3' is not allowed to connect to this MySQL server

    1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

    use mysql;
    update user set host = '%' where user = 'root';

    2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH 
    GRANT OPTION;

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

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED 
    BY&nbsp;<BR>'mypassword' WITH GRANT OPTION;

    本人使用第一种方法成功了。

    参考文献:http://blog.csdn.net/july_2/article/details/41896295

    4.ERROR 2003 (HY000): Can't connect to MySQL server on '10.16.XXX.XXX' (111)

    可能使用了bind_address=127.0.0.1(当然也可以是其他ip)

    [mysqld] 
    bind_address=127.0.0.1

    通过查看了my.cnf文件,注释掉这一句再重启mysql服务即可。

    也可能是其他问题,详见参考文献:http://blog.csdn.net/qustdjx/article/details/26937325/

    5.修改了my.cnf后如何重启mysql服务?

    停止mysql:

    方式一:sudo /etc/init.d/mysql stop 

    方式二:sudo stop mysql 

    方式三:sudo service mysql stop (亲测可行)

    重启mysql:

    方式一:sudo/etc/init.d/mysql restart

    方式二:sudo restart mysql

    方式三:sudo service mysql restart

    参考文献:http://www.2cto.com/database/201305/207791.html

  • 相关阅读:
    记录一些css奇淫技巧
    git的一些常用基础命令
    # 实现二维表格行头和列头固定的解决方案
    拿来-util工具函数
    mpvue开发小程序项目遇到的问题
    mac设置终端命令行别名alias(git、npm)
    简单配置nginx反向代理,实现跨域请求
    以前的阅读计划搁浅了,这里是分割线
    源码阅读心得11-13
    源码阅读心得1-10
  • 原文地址:https://www.cnblogs.com/in4ight/p/6845892.html
Copyright © 2011-2022 走看看