Rozwiązany w CentOS 7 + MariaDB 10.2
Mam ten sam problem i chcę przyczynić się do powstania mojej odpowiedzi . Właśnie zainstalowałem na moich 2 serwerach z systemem CentOS 7 z MariaDB (10.2.14-MariaDB MariaDB Server).
$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
$ mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is XXXX
Server version: 10.2.14-MariaDB MariaDB Server
Zainstalowałem MariaDB, te pakiety:
$ yum list installed | grep mariadb
MariaDB-client.x86_64 10.3.13-1.el7.centos @mariadb
MariaDB-common.x86_64 10.3.13-1.el7.centos @mariadb
MariaDB-compat.x86_64 10.3.13-1.el7.centos @mariadb
MariaDB-server.x86_64 10.3.13-1.el7.centos @mariadb
galera.x86_64 25.3.25-1.rhel7.el7.centos @mariadb
Odkryłem, że problem polega na tym, że mysqlclient wymaga pakietów mysql-devel, które różnią się od mariadb-devel. Nie instaluj mariadb-devel!
Tak więc, aby zainstalować tylko mysql-devel, musisz:
1. Usuń wszystkie MariaDB-devel
$ sudo yum erase MariaDB-devel.x86_64
2. Dodaj repozytorium MySQL w mniam
- Przejdź do https://dev.mysql.com/downloads/repo/yum/ i wybierz plik RPM dla swojego CentOS (dla mnie wybieram "Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architektura Niezależny), pakiet RPM" . Kliknij „pobierz” .)
- Pobierz bez rejestracji, skopiuj dolny link „Nie, dziękuję, po prostu rozpocznij pobieranie” .
- Przejdź do terminala i wpisz:
$ wget link-to-rpm-you-choose
- Po zakończeniu pobierania wpisz:
$ sudo rpm -Uvh your-rpm-downloaded
3. Teraz zainstaluj mysql-devel
- Wpisz (to jest moja wersja, obejrzyj swoją):
$ sudo yum install mysql-community-devel.x86_64
4. Teraz wreszcie:mysqlclient
- Typ:
$ sudo pip install mysqlclient
Collecting mysqlclient
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Downloading https://files.pythonhosted.org/packages/f4/f1/3bb6f64ca7a429729413e6556b7ba5976df06019a5245a43d36032f1061e/mysqlclient-1.4.2.post1.tar.gz (85kB)
100% |████████████████████████████████| 92kB 758kB/s
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient ... done
Successfully installed mysqlclient-1.4.2.post1
You are using pip version 8.1.2, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
I to wszystko! Zadziałało jak marzenie i teraz mogę używać Pythona + Django + MariaDB/MySQL
Aha, a mysqlclient to złącze polecane przez Django. Zobacz:https://docs.djangoproject. com/pl/2.1/ref/bazy danych/#mysql-db-api-drivers
Powodzenia i do zobaczenia! :-)