Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'installer mysqlclient sur centos

Résolu dans CentOS 7 + MariaDB 10.2

J'ai le même problème et j'aimerais contribuer avec ma réponse . Je viens d'installer sur mes 2 serveurs exécutant CentOS 7 avec 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

J'ai installé MariaDB, ces packages :

$ 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

J'ai trouvé que le problème est que mysqlclient nécessite des packages mysql-devel, qui sont différents de mariadb-devel. N'installez pas mariadb-devel !

Ainsi, pour installer uniquement mysql-devel, vous devez :

1. Supprimez tout développeur MariaDB

$ sudo yum erase MariaDB-devel.x86_64

2. Ajouter un référentiel MySQL dans yum

  1. Allez sur https://dev.mysql.com/downloads/repo/yum/ et sélectionnez le fichier RPM pour votre CentOS (pour moi, je choisis "Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Indépendant), RPM Package" . Cliquez sur "télécharger" .)
  2. Télécharger sans inscription, copier le lien du bas "Non merci, lancez simplement mon téléchargement" .
  3. Allez dans votre terminal et tapez :
$ wget link-to-rpm-you-choose
  1. Une fois le téléchargement terminé, saisissez :
$ sudo rpm -Uvh your-rpm-downloaded

3. Maintenant, installez mysql-devel

  1. Tapez (c'est ma version, regardez la vôtre) :
$ sudo yum install mysql-community-devel.x86_64

4. Maintenant, enfin :mysqlclient

  1. Tapez :
$  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.

Et c'est tout ! Cela a fonctionné comme un charme et maintenant je peux utiliser Python + Django + MariaDB/MySQL

Oh, et mysqlclient est le connecteur recommandé par Django. Voir :https://docs.djangoproject. com/en/2.1/ref/databases/#mysql-db-api-drivers

Bonne chance et à bientôt ! :-)