Django - Mysqldb: Symbol Not Found: _mysql_affected_rows
Solution 1:
It might be best if you install mysql and it's Python bindings from scratch, I use the following steps whenever I need MySQLdb on OS X 10.4 or 10.5:
Install MySQL for your system, the dmg installer should be sufficient
The default location of MySQL will be somewhere around:
/usr/local/mysql-5.0.45-osx10.4-i686
. From/usr/local/mysql/lib
, create a soft link:ln -s ../../mysql-5.0.45-osx10.4-i686/lib mysql
Download the MySQLdb source and unpack it
Edit the file
site.cfg
under your unpacked MySQLdb directory, comment out theregistry_key
and setmysql_config
to:mysql_config = /usr/local/mysql-5.0.45-osx10.4-i686/bin/mysql_config
Carry on with the regular Python packages build from within MySQLdb directory:
sudo python setup.py install
If everything is fine above, test MySQLdb in a new terminal:
python -c "import MySQLdb"
The above should return nothing if successful. The above example shows OS 10.4 and MySQL 5.0, substitute them with the your proper tools version.
Solution 2:
It was Complicated and hard but it worked on MacOSX Lion.
you will be using :
Xcode
Brew
Port
Pip
make sure that you have Xcode(4.X) installed , and your mac is configured to find the executables because it will be used by Macports during the process of installing mysql-python.
Make sure that Xcode Command line Tools are installed
start Xcode app >> preferences >> download >> Components tab >> Command Line Tools >> click install
run the following commands from the terminal.
xcodebuild -version
if you ran into this error
/usr/bin/xcodebuild -version Error: No developer directory found at /Developer
Try to Run
/usr/bin/xcode-select
this will update the developer directory path.
Then you need to switch manually to the new Xcode install dir in /Applications:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app
Uninstall mysql [Backup you data before doing so !].
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
edit /etc/hostconfig and remove the line MYSQLCOM=-YES-
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
Use brew to install Mysql again:
brew install mysql
you might run into this error.
Error: Cannot write to /usr/local/Cellar
the fix.
you should be ready to go now.
sudo port install py27-mysql
pip install mysql-python
python -c "import MySQLdb"
if you don't see any errors MySQLdb is installed.
Solution 3:
Yes, the MySQLDb egg was compiled against a different version of libmysqlclient than the version present in the system. You need to either get a proper egg (uninstalling the previous) or to build MySQLDb from scratch to compile it against the library present in your system.
I don't know why but I think your colleague might be interested in this question:
Solution 4:
I had trouble with Thierry's solution on 32-bit Python (2.6.5) on OS X 10.6.
Upgrading to Python 2.7 64-bit version fixed the problem for me.
Solution 5:
Try to run:
easy_install -U distribute
pip install --upgrade mysql-python
Note: If you have any errors of missing symbols while compiling, you need to have mysql development libs to compile it.
On Linux it's easy to install it:
sudo apt-get install mysql-devel
or:
sudo yum install mysql-devel
On Mac you probably need to download MySQL Connector and then you may have to pass in a --with-mysql-libs option to point to the directory when the C libraries are unpacked to. Or you can try to put the libraries in the default directory: /usr/lib64/mysql
Post a Comment for "Django - Mysqldb: Symbol Not Found: _mysql_affected_rows"