Python ve MySQL Bağlantı Sorunu

Share Button

Django ile uygulama geliştirirken veritabanı tercihinizi MySQLden yana kullandığınızda şayet geliştirme ortamınızda gerekli bileşenler yoksa, manage.py ile shell veya runserver çalıştırdığınızda aşağıdaki gibi bir hata iletisi almanız olasıdır.

ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Sorunu gidermek için pip ile MySQLdb-python paketini kurmak istediğinizde ise, yine şartlar uygun olmadığı takdirde aşağıdaki hata mesajıyla karşılaşabilirsiniz:

Downloading/unpacking MySQL-python
Running setup.py egg_info for package MySQL-python
    sh: mysql_config: not found
    Traceback (most recent call last):
    File "<string>", line 14, in <module>
    File "/home/vagrant/build/MySQL-python/setup.py", line 15, in <module>
        metadata, options = get_config()
    File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
    File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

File "<string>", line 14, in <module>

File "/home/vagrant/build/MySQL-python/setup.py", line 15, in <module>

    metadata, options = get_config()

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

    libs = mysql_config("libs_r")

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

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

EnvironmentError: mysql_config not found

Çözüm:

1- Pip paket yöneticisini kurun (pip kuruluysa bu adımı geçebilirsiniz.)

 $ sudo apt-get install python-pip 

2- Pip paketini güncelleyin.

$ sudo pip install -U pip

3- python-dev ve libmysqlclient-dev paketlerini kurun.

$ sudo apt-get install python-dev libmysqlclient-dev

4- MySQLdb-python paketini kurun.

$ sudo pip install MySQL-python
Share Button

About İbrahim Gündüz

1983 yılında İstanbul’da doğdu. İlkokul yıllarında cobol ve basic le olan tanışması, yazılıma olan ilgisini arttırdı 2005 yılında. Uludağ Üniversitesi Teknik Bilimler Meslek Yüksek Okulu Elektronik bölümünden mezun olan Gündüz, çeşitli alanlarda faaliyet gösteren kurumlarda yazılım geliştirici olarak görev almıştır. Mesleki ilgi alanları, ölçeklenebilir sistemler, uygulama entegrasyonları ve ödeme sistemleridir. Halen Markafoni back end geliştirici olarak çalışmaktadır.

6 Comments

  • Kasım 15, 2013 - 7:47 pm | Permalink

    Offf… En sevmediğim kısmı, hep MySQL-python paket isminin tam yazım şeklini unutuyor olmam. Pip geliştiricilerine otomatik olarak “Did you mean xyz?” şeklinde öneri getirme sistemini geliştirmeleri konusunda defalarca trollemiş olsam da, tembelliğimden bir feature request ticket’i bile açamadığım için Postgre’ye geçtim :) Zaten Mysql için hala resmi py3k uyumlu kütüphane yok.

  • Kasım 15, 2013 - 7:49 pm | Permalink

    Bu arada, Vagrant kullandığın ve özendirdiğin için ayrıca tebrikler!

  • Kasım 16, 2013 - 10:22 pm | Permalink

    :) Dürüst olmak gerekirse geliştirme ortamımda vagrant yeirne virtual environment tercih ediyorum. Örnekdeki hata iletisini stackoverflow’dan aldım. Virtualenv oldukca hafif ve genel anlamda işimi görüyor. Bu arada did you mean olayına katılmamak elde değil abi. Stack overflow olmasaydı ne yapardık bilmiyorum.

  • İbrahim
    Mayıs 14, 2015 - 6:04 pm | Permalink

    İbrahim bey iyi günler. Ben python ile yapabileceklerimi öğrenmeye yeni başladım. python da MySQLdb import ettikten sonra “db” değişkeni atarken

    “””db = MySQLdb.connect(user=”root”,db=”mydb”,passwd=””,host=”localhost”)””” komutunu yazdıktan sonra aşağıda ki hatayı alıyorum. sebebi nedir acaba. şimdiden teşekkürler…

    Traceback (most recent call last):
    File “”, line 1, in
    db = MySQLdb.connect(user=”root”,db=”mydb”,passwd=””,host=”localhost”)
    File “C:\Python27\lib\site-packages\MySQLdb\__init__.py”, line 81, in Connect
    return Connection(*args, **kwargs)
    File “C:\Python27\lib\site-packages\MySQLdb\connections.py”, line 193, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
    OperationalError: (2003, “Can’t connect to MySQL server on ‘localhost’ (10061)”)

    • Mayıs 22, 2015 - 11:08 pm | Permalink

      Merhaba,
      MySQL servisiniz belirttiğiniz ortamda çalışmıyor olabilir veya bir erişim sorunu yaşıyor olabilirsiniz.

  • Bir Cevap Yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir