Skip to content
William Zhang edited this page Nov 13, 2017 · 13 revisions

Tricks and traps for JDBC application

zero timestamp etc..

Docker and MySQL series

  1. http://severalnines.com/blog/mysql-docker-containers-understanding-basics
  2. http://severalnines.com/blog/mysql-docker-building-container-image
  3. http://severalnines.com/blog/mysql-docker-single-host-networking-mysql-containers
  4. http://severalnines.com/blog/mysql-docker-introduction-docker-swarm-mode-and-multi-host-networking

Installation

http://dev.mysql.com/downloads/mysql/

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9.tar.gz
$ pwd
/home/zedware/mysql-5.6.16
$ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
$ make clean; make; make install;

$ cd /usr/local/mysql
$ cat my.cnf 
[mysqld]
innodb_file_per_table=1
datadir=/usr/local/mysql/data
general-log-file=/usr/local/mysql/general.log
log-error=/usr/local/mysql/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
slow-query-log-file=/usr/local/mysql/slow.log
socket=/usr/local/mysql/mysql.sock
$ mkdir data
$ scripts/mysql_install_db --defaults-file=my.cnf
$ /usr/bin/mysql_install_db --datadir=/var/lib/mysql --defaults-file=/usr/my.cnf

For 5.7/8.0: http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

$ bin/mysqld --defaults-file=my.cnf --initialize-insecure
$ bin/mysqld --defaults-file=my.cnf
$ bin/mysql -uroot -S/usr/local/mysql/mysql.sock
mysql> select version();
$ bin/mysqld --defaults-file=my.cnf --skip-grant-tables
$ bin/mysql -uroot -S/usr/local/mysql5.7/mysql.sock

Facebook MySQL 5.6

The official steps: build steps

$ more go.sh
#!/bin/bash

# Remove the cmake cache
rm -rf CMakeCache.txt

# Set CC/CXX
CC=/opt/rh/devtoolset-3/root/usr/bin/gcc \
CXX=/opt/rh/devtoolset-3/root/usr/bin/g++ \
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_SSL=system \
-DWITH_ZLIB=bundled -DMYSQL_MAINTAINER_MODE=0 -DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0

make -j

If lz4 is missing, visit lz4.

Oracle MySQL 8.0.0

The official steps: build steps.

boost 1.60

Add -DWITH_BOOST=/usr/local/boost_1_60_0 to cmake. Not compatible with boost 1.61.0.

Notes:

  1. CXXFLAGS=-Woverloaded-virtual
  2. make VERBOSE=1

sysbench

$ ./sysbench --test=cpu run
$ ./sysbench --test=fileio --file-test-mode=seqrd prepare
$ ./sysbench --test=fileio --file-test-mode=seqrd run
$ ./sysbench --test=fileio --file-test-mode=seqrd cleanup
$ ./sysbench --test=tests/db/select.lua --mysql-db=test --mysql-user=root --mysql-socket=/usr/local/mysql/mysql.sock prepare
$ ./sysbench --test=tests/db/select.lua --mysql-db=test --mysql-user=root --mysql-socket=/usr/local/mysql/mysql.sock run
$ ./sysbench --test=tests/db/select.lua --mysql-db=test --mysql-user=root --mysql-socket=/usr/local/mysql/mysql.sock cleanup
Clone this wiki locally