Skip to content

Instantly share code, notes, and snippets.

@anjesh
Created August 27, 2017 03:41
Show Gist options
  • Select an option

  • Save anjesh/d35fac0d5b85a0d71fb04d72e1c7925c to your computer and use it in GitHub Desktop.

Select an option

Save anjesh/d35fac0d5b85a0d71fb04d72e1c7925c to your computer and use it in GitHub Desktop.

Revisions

  1. anjesh created this gist Aug 27, 2017.
    139 changes: 139 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,139 @@
    * Download mysql source

    * Ran the following cmake command based on the documentation

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mac-dev-env/mysql-5.7.18 \
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=/usr/local/src/boost \
    ..
    ```

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX=./mysql-5.7.18 \
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=1 \
    ..
    ```

    * gives the following error
    ```
    CMake Error at cmake/boost.cmake:81 (MESSAGE):
    You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
    ```

    * following https://geeksww.com/tutorials/operating_systems/linux/installation/installing_mysql_client_tools_binaries_and_library_on_ubuntu_linux.php

    ```
    ./configure.cmake --without-server --enable-thread-safe-client \
    --with-client-ldflags=-all-static --prefix=./mybuild \
    --without-debug --without-docs --with-big-tables
    ```

    * this didn't work

    ## Building boost

    * http://www.boost.org/doc/libs/1_65_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary

    ```
    download boost and untar
    mkdir mybuild
    ./bootstrap.sh --prefix=mybuild/
    ./b2
    ```

    * building taking time

    * create folder `mybuild` inside mysql source folder so that cmake files are in that folder and it's easy to delete the tmp files. Also put the entire src in git to see if the original src folder gets new files.

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX= ./mysql-5.7.18\
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=../../boost_1_65_0.tar.gz \
    ..
    ```

    * gives error `-- MySQL currently requires boost_1_59_0`

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX= ./mysql-5.7.18\
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=../../ \
    ..
    ```

    * this tried to download boost but later got timeout error

    * downloaded boost package `wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz`

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX= ./mysql-5.7.18\
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=../../ \
    ..
    ```

    * the cmake is running ok

    * `make` to build the exe

    * got this error `/Users/anjesh/Dev/source/mysql-5.7.19/mysys/charset.c:403:22: error: use of undeclared identifier 'DEFAULT_CHARSET_HOME'`

    * Found the bug reported here `https://bugs.mysql.com/bug.php?id=78214`
    * not sure how to fix

    * looks like this error might be due to space after `PREFIX= `, something that's mentioned in above command
    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX=./mysql-5.7.18 \
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=../../ \
    ..
    ```

    `make`

    * still cann't compile Mysql-python becauase of some .h file folder issues.

    * again runnnig cmake and make with some change in the prefix

    ```
    cmake \
    -DCMAKE_INSTALL_PREFIX=./ \
    -DCMAKE_CXX_FLAGS="-stdlib=libstdc++" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DDOWNLOAD_BOOST=ON \
    -DWITH_BOOST=../../ \
    ..
    ```

    `make`

    `make install` without sudo and the necessary files are installed in the same folder

    Now i was able to install MySQL-Python after configuring mysql_config, i put mysql_config in ~/bin and the installation worked.