mysql 安装的坑

后端

后端的搭建就有很大的坑啦!!!

在wiki中的安装依赖包 pip install -r req.txt 步骤中,req.txt里有个MySQL-python包,在有些机器上直接用pip会报各种奇奇怪怪的错误,例如:

  • _mysql.c:44:10: fatal error: 'my_config.h' file not found
  • error: command 'cc' failed with exit status 1
  • EnvironmentError: mysql_config not found
  • File "/Users/ss/Downloads/MySQL-python-1.2.5/distribute_setup.py", line 116, in _build_egg
    raise IOError('Could not build the egg.')

出现那么多问题究其根源竟然是由mysql官方引起的(惊喜不?),具体可参考博客
看起来官方是不太可能修复了,所以还得由自己解决。

参考了博客 - mac os x 10.8 安装python-mysqldb血泪史后,经过大半天的折腾,终于安装成功了,现分享如下:

https://www.easegamer.com/?p=545

1. 先清理环境

  brew uninstall mysql
  brew uninstall mysql-connector-c

2. 安装mysql

mac下安装mysql有两种方式,使用安装包安装或使用使用homebrew安装
这里推荐使用安装包安装,因为用homwbrew安装后启动mysql服务又会出现莫名其妙的错误。不怕麻烦的可以自己体会下~

安装时注意以下几点:

    • 安装时记得保存最后弹出框中的密码
    • 安装完后记得将 /usr/local/mysql/bin 加入系统环境变量
    • 最后可通过 mysql -u root -p 命令登录mysql,密码就是安装时保存的密码。登录成功后通过以下命令修改密码
      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');

3. 安装 mysql-connector-c

     brew install mysql-connector-c

4. 安装command_line_tools

     xcode-select --install

5. 安装MySQL-python

5.1 下载 MySQL-python-1.2.5 包,https://pypi.org/project/MySQL-python/1.2.5/

5.2 解压该包,cd进去后修改 site.cfg 文件,有一行

      #mysql_config = /usr/local/bin/mysql_config

      改成

   mysql_config = /usr/local/mysql/bin/mysql_config

      /usr/local/mysql 是安装mysql的路径

5.3 python setup.py clean

5.4 python setup.py build

      但这里推荐使用如下命令来进行编译,这是为了将来避免一种clang错误(未雨绸缪吧),具体可参考链接

      sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future python setup.py build

5.5 python setup.py install

      安装完后还记得添加环境变量

   export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

5.6 验证MySQLdb

       在终端依次输入以下代码,如果每步都没提示错,那恭喜你安装MySQL-python成功~

1
2
3
4
5
6
7
8
9
10
11
python
>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123",db="mysql")
>>> cursor =conn.cursor()
>>> sql = "select * from user"
>>> cursor.execute(sql)
2L
>>> row = cursor.fetchone()
>>> print row
 ('localhost''root''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y''Y', '', '', '', '', 0L, 0L, 0L, 0L, 'mysql_native_password', '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257', 'N', datetime.datetime(2018, 7, 16, 3, 48, 8), None, 'N')
>>> 


      但如果import MySQLdb时就出现错误,且错误最后一行写着 Reason: image not found,可尝试用以下命令来解决
   sudo ln -s /usr/local/mysql/lib/libmysqlclient.20.dylib /usr/lib/libmysqlclient.20.dylib
   sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

 

posted @ 2019-07-06 11:10  LY&CC  阅读(325)  评论(0)    收藏  举报