编译安装mysql5.7版本,想试用一下新的版本特性,发现跟之前的5.6版本编译有了一些变化,总结一下避免以后继续入坑。
cmake版本
5.7编译cmake要求版本最低为2.8,当前为2.6,所以需要升级cmake版本。信息如下
shell> cmake . -DCMAKE_INSTALL_PREFIX=/db/mysql/mysql_57 -DMYSQL_DATADIR=/db/mysql/mysql_57/dataCMake Error at CMakeLists.txt:21 (CMAKE_MINIMUM_REQUIRED): CMake 2.8.2 or higher is required. You are running version 2.6.4-- Configuring incomplete, errors occurred!shell> cmake --versioncmake version 2.6-patch 4
cmake官网
shell> tar zxvf cmake-3.2.2.tar.gzshell> cd cmake-3.2.2/shell> ./bootstrapshell> make && make installshell> cmake --versioncmake version 3.2.2
BOOST库
5.7编译需要boost类库,可使用 -DDOWNLOAD_BOOST=1 -DWITH_BOOST= 参数将在指定路径查找,如未找到会指
定下载并解压到指定的路径
问题描述shell> cmake . -DCMAKE_INSTALL_PREFIX=/db/mysql/mysql_57 -DMYSQL_DATADIR=/db/mysql/mysql_57/data CMake suite maintained and supported by Kitware (kitware.com/cmake).-- Could not find (the correct version of) boost.-- MySQL currently requires boost_1_57_0CMake Error at cmake/boost.cmake:76 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=安装boost库shell> tar jxvf boost_1_57_0.tar.bz2shell> cd boost_1_57_0/shell> ./bootstrap.shshell> ./b2 install安装后目录shell> ls /usr/local/include/boostshell> cmake . -DCMAKE_INSTALL_PREFIX=/db/mysql/mysql_57 -DMYSQL_DATADIR=/db/mysql/mysql_57/data
mysql_install_db
之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃。
shell> cd /db/mysql/mysql_57shell> bin/mysql_install_db --basedir=. --datadir=data --user=mysql[WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initializeshell> bin/mysqld --initialize2015-04-21T18:17:53.169216Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2015-04-21T18:17:58.702510Z 0 [Warning] InnoDB: New log files created, LSN=457902015-04-21T18:17:59.538811Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.2015-04-21T18:17:59.646010Z 0 [Warning] Failed to setup SSL2015-04-21T18:17:59.646105Z 0 [Warning] SSL error: SSL context is not usable without certificate and private key2015-04-21T18:17:59.663795Z 1 [Warning] A temporary password is generated for root@localhost: rq/Oh8VWs1Yh
shell>/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ |
初始化密码
mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录。
shell> cat /root/.mysql_secret # Password set for user 'root@localhost' at 2015-04-22 22:13:23 ?G5W&tz1z.cN修改默认密码shell> bin/mysqladmin -h localhost -u root password '123@qwe' -p'?G5W&tz1z.cN'mysqladmin: [Warning] Using a password on the command line interface can be insecure.Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
另外mysql5.7的mysql.user表结构被修改
修改mysql.user方式修改密码mysql> update mysql.user set authentication_string=password('123qwe') where user='svoid' and Host = 'localhost';Query OK, 1 row affected (0.01 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
整理自:http://blog.itpub.net/29733787/viewspace-1590891/