diff --git a/README.md b/README.md index 60ec4ea5..2262e9d5 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ I hope this fork is merged back to MySQLdb1 like distribute was merged back to s You may need to install the Python and MySQL development headers and libraries like so: -`sudo apt-get install python-dev libmysqlclient-dev` # Debian / Ubuntu +* `sudo apt-get install python-dev libmysqlclient-dev` # Debian / Ubuntu +* `sudo yum install python-devel mysql-devel` # Red Hat / CentOS +* `brew install mysql-connector-c` # macOS (Homebrew) (Currently, it has bug. See below) -`sudo yum install python-devel mysql-devel` # Red Hat / CentOS - -On Windows, there are binary wheel you can install without MySQLConnector/C or MSVC. +On Windows, there are binary wheels you can install without MySQLConnector/C or MSVC. #### Note on Python 3 : if you are using python3 then you need to install python3-dev using the following command : @@ -25,7 +25,32 @@ On Windows, there are binary wheel you can install without MySQLConnector/C or M `sudo yum install python3-devel ` # Red Hat / CentOS -`brew install mysql-connector-c` # macOS (Homebrew) +#### **Note about bug of MySQL Connector/C on macOS** + +See also: https://bugs.mysql.com/bug.php?id=86971 + +Versions of MySQL Connector/C may have incorrect default configuration options that cause compilation errors when `mysqlclient-python` is installed. (As of November 2017, this is known to be true for homebrew's `mysql-connector-c` and [official package](https://dev.mysql.com/downloads/connector/c/)) + +Modification of `mysql_config` resolves these issues as follows. + +Change + +``` +# on macOS, on or about line 112: +# Create options +libs="-L$pkglibdir" +libs="$libs -l " +``` + +to + +``` +# Create options +libs="-L$pkglibdir" +libs="$libs -lmysqlclient -lssl -lcrypto" +``` + +An improper ssl configuration may also create issues; see, e.g, `brew info openssl` for details on macOS. ### Install from PyPI diff --git a/setup_posix.py b/setup_posix.py index 320e9e99..14cffcad 100644 --- a/setup_posix.py +++ b/setup_posix.py @@ -9,6 +9,8 @@ # of mysql_config def dequote(s): + if not s: + raise Exception("Wrong MySQL configuration: maybe https://bugs.mysql.com/bug.php?id=86971 ?") if s[0] in "\"'" and s[0] == s[-1]: s = s[1:-1] return s