一、编译安装MySQL
下载mysql5.7.28源码
https://downloads.mysql.com/archives/community/
Select Operating System 选择 Source Code
Select OS version 选择 All Operating Systems
选择带有boost的版本
安装系统包
apt -y install make cmake gcc g++ perl bison libaio-dev libncurses5 libncurses5-dev libnuma-dev libssl-dev
这里可能需要安装低版本的openssl
1、下载源码包:
wget http://www.openssl.org/source/openssl-1.1.0g.tar.gz
2、安装到/usr/local/ssl/目录下:
tar zxvf openssl-1.1.0g.tar.gz
cd openssl-1.1.0g
./config --prefix=/usr/local/ssl
这里可能报错:
在 Configure文件和 test/build.info这个文件
use if $^O ne "VMS", 'File::Glob' => qw/glob/;
改成
use if $^O ne "VMS", 'File::Glob' => qw/:glob/;
make -j8
make install -j8
mv -f /usr/bin/openssl /usr/bin/openssl.old
mv -f /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl #修改软链,指向新版本的openssl路径
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib">>/etc/ld.so.conf
#添加so库的路径,添加完成之后,运行ldconfig ,将新增的so 文件缓存到/etc/ld.so.cache中;
ldconfig -v
openssl version -a #确认版本是否为1.1.0g
添加mysql用户
groupadd mysql
useradd -r -g mysql mysql
预制一些目录
mkdir -p /mnt/install # 存放安装后的软件
mkdir -p /mnt/data # 存放数据
mkdir -p /mnt/log # 存放日志
chown -R mysql:mysql /mnt
解压
tar -zxf mysql-boost-5.7.28.tar.gz
预编译
cmake -DMYSQL_UNIX_ADDR=/mnt/install -DMYSQL_UNIX_ADDR=/mnt/install/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/mnt/data -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost -DWITH_SSL=/usr/local/ssl
编译参数的参考文档:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
编译
make -j8
安装
指定安装目录
vim cmake_install.cmake
修改AKE_INSTALL_PREFIX "/mnt/install"为目标目录
make install -j8
修改安装目录的所有者和所属组
chown -R mysql:mysql /mnt
初始化,生成一个临时的mysql root用户密码
/mntl/install/bin/mysqld --initialize --user=mysql
打印初始密码:A temporary password is generated for root@localhost: Br-)u/%:=2:9
这个密码也会写入 /root/.mysql_secret中
启动mysql,修改root密码为123456
/mnt/install/support-files/mysql.server start # 启动后,按回车回到命令行
/mnt/install/bin/mysql -u root -p
Enter Password: # 这里输入刚才生成的密码
mysql> set password for root@localhost = password('123456');
这里可能会报错mysql.server: 259: cd: can’t cd to /usr/local/mysql
解决方案:
修改 /mnt/install/support-files/mysql.server,将文件中的datadir和basedir路径配置成自定义的路径 即basedir=/mnt/install datadir=/mnt/data
目前不太方便,系统没有mysql这个命令,没有用设置开机启动
先停止mysql
/mnt/install/support-files/mysql.server stop;
启动mysql服务,注册成systemd服务
cp /mnt/install/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start # 这一步自动注册成systemd服务了,可以使用systemctl管理mysql了
chmod +x /etc/init.d/mysqld
systemctl stop mysqld
systemctl start mysqld
systemctl enable mysqld
添加mysql、mysqldump、mysqlpump等一系列命令
vim /etc/profile
文件末尾追加
PATH=$PATH:/mnt/install/bin
验证mysql命令
source /etc/profile
mysql -u root -p
Enter password: 123456
二、YCSB-jdbc
下载打包好的YCSB
curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz
tar xfvz ycsb-0.17.0.tar.gz
cd ycsb-0.17.0
安装java
sudo apt install openjdk-8-jdk -y
基于mysql版本下载
我的是5.7的用的mysql-connector-java-5.1.38-bin.jar
修改ycsb配置
vim ycsb-0.17.0/jdbc-binding/conf/db.properties
db.driver=com.mysql.jdbc.Driver
# jdbc.fetchsize=20
db.url=jdbc:mysql://127.0.0.1:3306/ycsb
db.user=root
db.passwd=123456
安装python2
sudo apt install python2
#设置软连接
ln -s /usr/bin/python2 /usr/bin/python
三、运行YCSB on MySQL
创建数据库
mysql -u root -p
CREATE DATABASE ycsb;
USE ycsb;
CREATE TABLE usertable (YCSB_KEY VARCHAR(255) PRIMARY KEY, FIELD0 TEXT, FIELD1 TEXT, FIELD2 TEXT, FIELD3 TEXT, FIELD4 TEXT, FIELD5 TEXT, FIELD6 TEXT, FIELD7 TEXT, FIELD8 TEXT, FIELD9 TEXT);
load数据
bin/ycsb load jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties -cp ./jdbc-binding/lib/mysql-connector-java-5.1.38-bin.jar
复制data目录
为了方便后续测试不再重新load,可以选择将/mnt/data目录copy到其他地方做备份,
当重新测试时, 先关闭mysql
sudo systemctl stop mysqld
删除/mnt/data/
然后复制回之前的版本,并修改所属者
sudo chown -R mysql:mysql /mnt/data
然后重启mysql
sudo systemctl start mysqld
run测试
bin/ycsb run jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties -cp ./jdbc-binding/lib/mysql-connector-java-5.1.38-bin.jar