python mysql_config not found_python[error] - mysql_config not found

导语在Centos7下,当前python版本是2.7.5,测试实时获取日志然后解析入库中,安装MySQL-python模块报错如

EnvironmentError: mysql_config not found,原因是缺少了 mysql 相关支持。

这里把解决过程记录一下

具体报错信息:root@pts/4 $ pip install MySQL-python

Collecting MySQL-python

Using cached MySQL-python-1.2.5.zip

Complete output from command python setup.py egg_info:

sh: mysql_config: command not found

Traceback (most recent call last):

File "", line 1, in 

File "/tmp/pip-build-kWowP9/MySQL-python/setup.py", line 17, in 

metadata, options = get_config()

File "setup_posix.py", line 43, in get_config

libs = mysql_config("libs_r")

File "setup_posix.py", line 25, in mysql_config

raise EnvironmentError("%s not found" % (mysql_config.path,))    EnvironmentError: mysql_config not found

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-kWowP9/MySQL-python/

mysql_config是来自于 mysql-devel ,我用的是MySQL社区版,所以实际安装的是mysql-community-devel,网上的说法是同时安装python-devel,如果你没有安装的话一起安装yum install python-devel mysql-community-devel -y

安装完成之后尝试再次 pip 安装 MySQL-python

再次安装root@pts/4 $ pip install MySQL-python

Collecting MySQL-python

Using cached MySQL-python-1.2.5.zip

Installing collected packages: MySQL-python

Running setup.py install for MySQL-python ... done

Successfully installed MySQL-python-1.2.5

验证root@pts/1 $ python

Python 2.7.5 (default, Sep 15 2016, 22:37:39)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.>>> import MySQLdb>>> MySQLdb.

MySQLdb.BINARY                                    MySQLdb.OperationalError(                         MySQLdb.__hash__(                                 MySQLdb.debug(

MySQLdb.Binary(                                   MySQLdb.ProgrammingError(                         MySQLdb.__init__(                                 MySQLdb.escape(

MySQLdb.Connect(                                  MySQLdb.ROWID                                     MySQLdb.__name__                                  MySQLdb.escape_dict(

MySQLdb.Connection(                               MySQLdb.STRING                                    MySQLdb.__new__(                                  MySQLdb.escape_sequence(

MySQLdb.DATE                                      MySQLdb.TIME                                      MySQLdb.__package__                               MySQLdb.escape_string(

MySQLdb.DATETIME                                  MySQLdb.TIMESTAMP                                 MySQLdb.__path__                                  MySQLdb.get_client_info(

MySQLdb.DBAPISet(                                 MySQLdb.Time(                                     MySQLdb.__reduce__(                               MySQLdb.paramstyle

MySQLdb.DataError(                                MySQLdb.TimeFromTicks(                            MySQLdb.__reduce_ex__(                            MySQLdb.release

MySQLdb.DatabaseError(                            MySQLdb.Timestamp(                                MySQLdb.__repr__(                                 MySQLdb.result(

MySQLdb.Date(                                     MySQLdb.TimestampFromTicks(                       MySQLdb.__revision__                              MySQLdb.server_end(

MySQLdb.DateFromTicks(                            MySQLdb.Warning(                                  MySQLdb.__setattr__(                              MySQLdb.server_init(

MySQLdb.Error(                                    MySQLdb.__all__                                   MySQLdb.__sizeof__(                               MySQLdb.string_literal(

MySQLdb.FIELD_TYPE                                MySQLdb.__author__                                MySQLdb.__str__(                                  MySQLdb.test_DBAPISet_set_equality(

MySQLdb.IntegrityError(                           MySQLdb.__class__(                                MySQLdb.__subclasshook__(                         MySQLdb.test_DBAPISet_set_equality_membership(

MySQLdb.InterfaceError(                           MySQLdb.__delattr__(                              MySQLdb.__version__                               MySQLdb.test_DBAPISet_set_inequality(

MySQLdb.InternalError(                            MySQLdb.__dict__                                  MySQLdb._mysql                                    MySQLdb.test_DBAPISet_set_inequality_membership(

MySQLdb.MySQLError(                               MySQLdb.__doc__                                   MySQLdb.apilevel                                  MySQLdb.thread_safe(

MySQLdb.NULL                                      MySQLdb.__file__                                  MySQLdb.connect(                                  MySQLdb.threadsafety

MySQLdb.NUMBER                                    MySQLdb.__format__(                               MySQLdb.connection(                               MySQLdb.times

MySQLdb.NotSupportedError(                        MySQLdb.__getattribute__(                         MySQLdb.constants                                 MySQLdb.version_info>>>

>>> MySQLdb.version_info

(1, 2, 5, 'final', 1)>>>

作者:全栈运维

链接:https://www.jianshu.com/p/827cf26568d8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装Python 首先需要安装Python,可以从官网下载适合自己系统的版本并安装。 2. 安装Jupyter 可以通过pip安装Jupyter,运行以下命令: ``` pip install jupyter ``` 3. 安装mysql-replication mysql-replication是一个Python库,用于监控和解析MySQL复制事件。可以通过pip安装mysql-replication,运行以下命令: ``` pip install mysql-replication ``` 4. 安装MySQL 需要安装MySQL数据库,并确保可以访问到MySQL服务器。 5. 配置MySQL复制 在MySQL服务器上配置复制,可以参考以下步骤: - 在主服务器上创建一个用于复制的用户,并授权该用户可以复制数据库。 - 在从服务器上配置my.cnf文件,指定复制的参数。例如: ``` [mysqld] server-id=2 log_bin=mysql-bin relay-log=relay-bin log_slave_updates=1 replicate-do-db=testdb ``` - 在从服务器上启动MySQL服务,并连接主服务器。 6. 使用mysql-replication 使用mysql-replication可以监听MySQL复制事件,例如: ```python from mysql_replication import BinLogStreamReader stream = BinLogStreamReader( connection_settings={ "host": "localhost", "port": 3306, "user": "replication", "password": "password" }, server_id=2, blocking=True, only_events=["table_map", "write_rows"], only_tables=["testdb.mytable"] ) for binlogevent in stream: for row in binlogevent.rows: print(row) ``` 以上代码会监听MySQL复制事件,并输出在testdb.mytable中写入的行。可以根据需要修改代码以监听不同的事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值