https://pypi.org/project/mysqlclient/
python3 + mysql8 + centos7.9 の手習い。
目次
install mysqlclient ( MySQLdb )
mysqlclient は、インストール時に mysql_config を参照しますが、 「pip3 install mysqlclient」によるインストールでは、 「/bin/sh: mysql_config: command not found」エラーとなる為 mysqlclient-2.1.0.tar.gz を wget し、local install しています。
$ mkdir pip_packages $ cd pip_packages $ wget https://files.pythonhosted.org/packages/de/79/<略>/mysqlclient-2.1.0.tar.gz $ tar -xvf mysqlclient-2.1.0.tar.gz $ vi mysqlclient-2.1.0/site.cfg old) #mysql_config = /usr/local/bin/mysql_config new) mysql_config = /usr/local/mysql/bin/mysql_config $ tar -xcvf mysqlclient-2.1.0.tar.gz mysqlclient-2.1.0 $ cd .. $ sudo pip3 install --no-index --find-links=./pip_packages mysqlclient $ sudo vi /etc/ld.so.conf /usr/local/mysql/lib ## <--ADD $ sudo ldconfig
試していませんが、以下でのインストールできたのかもしれません...
$ sudo su - # export PATH="/usr/local/mysql/bin:$PATH" # pip3 install mysqlclient
sample code of mysqlclient ( MySQLdb ) for python3
#!/usr/bin/python3 # -*- coding: utf-8 -*- import MySQLdb def main(): db_conn = MySQLdb.connect( host='localhost', user='wordpress', passwd='wordpress', db='wordpress') db_cur = db_conn.cursor() sql = "select * from wp_users where id in (%s,%s,%s)" # sql = "select * from wp_users" try: db_cur.execute(sql,(1,2,3)) except Exception as e: print(e) return # db_cur.execute(sql) ret_rows = db_cur.fetchall() # connection.commit() for row in ret_rows: print(row) db_cur.close() db_conn.close() if __name__ == '__main__': main()