β

体验使用mysqldb操作mysql5.7的json类型

峰云就她了 528 阅读

看到推送的消息说,mysql 5.7 ga版本出来了,说是有更好的性能,对于多核CPU、固态硬盘、锁有着更好的优化。在这一版本里面,mysql也终于有了json数据结构,虽说现在还不能跟mongodb这样的文档性数据库做比拟,但这已经是关系型数据库的一大改进了。

mysql5.7 ga版本说是10 26号才发布下载地址. 那我们就先测试下最新的rc版本。最近的版本是mysql5.7.8,mysql在5.7.8的时候,才加入了json功能。 对于这样的新鲜功能,我总是那么的好奇。 今天就体验下mysql5.7.8 json的功能,还要看python MySQLdb对于这样的json支持程度。

1. 安装相关工具

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison


2. 清理环境, 以前要把以前的mysql-sever mysql-* 卸载个干净。

3. mysql源码包下载

mysql5.7.8源码包下载:
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.8-rc.tar.gz

如果mysql的版本有更新,可以自己找找递增的版本
http://mirrors.sohu.com/mysql/

4. 创建mysql用户, 组及目录

# groupadd mysql
# useradd -g mysql -d /home/mysql mysql
# mkdir /data/mysql/

5. 注意事项

从MySQL 5.7.5开始Boost库是必需的,下载Boost库,在解压后复制到/usr/local/boost目录下,然后重新cmake并在后面的选项中加上选项 -DWITH_BOOST=/usr/local/include/boost/

新版本mysql-5.7.8需求boost_1_57_0, 下载地址如下:

wget -c http://git.typecodes.com/libs/ccpp/boost_1_57_0.tar.bz2
tar -jxf boost_1_57_0.tar.bz2 && cd boost_1_57_0/
./bootstrap.sh
./b2 stage threading=multi link=shared
./b2 install threading=multi link=shared
cd ~ && rm -rf boost_1_57_0*

boost安装之后,咱们开始编译mysql,首先需要cmake

cmake \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
-DCOMMUNITY_BUILD:BOOL=ON \
-DENABLED_PROFILING:BOOL=ON \
-DENABLE_DEBUG_SYNC:BOOL=OFF \
-DINSTALL_LAYOUT:STRING=STANDALONE \
-DMYSQL_DATADIR:PATH=/data/mysql \
-DMYSQL_MAINTAINER_MODE:BOOL=OFF \
-DWITH_EMBEDDED_SERVER:BOOL=ON \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_SSL:STRING=bundled \
-DWITH_UNIT_TESTS:BOOL=OFF \
-DWITH_ZLIB:STRING=bundled \
-DENABLE_DTRACE=OFF \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/include/boost/


CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
WITH_COMMENT:指定编译备注信息
WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
MYSQL_DATADIR:数据文件目录
MYSQL_TCP_PORT:服务端口号,默认3306
MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

编译安装

# make && make install

以root初始化操作时要加–user=mysql参数,生成一个随机密码(注意保存登录时用),密码是放在/home/mysql/.mysql_secret文件里面的。

# cd /home/mysql
# bin/mysqld –initialize –user=mysql –basedir=/user/local/mysql –datadir=/data/mysql/

8. 创建配置文件

拷贝配置文件模板为新的mysql配置文件,
cd /usr/local/mysql/support-files;cp my-default.cnf /etc/my.cnf

作者:峰云就她了
专注于运维平台化、运维自动化、python运维
原文地址:体验使用mysqldb操作mysql5.7的json类型, 感谢原作者分享。