Welcome 微信登录

首页 / 数据库 / MySQL / CentOS 7.2 编译安装 MySQL 5.7.14

CentOS 7.2 编译安装 MySQL 5.7.14

一、环境准备

1、查看系统版本

1234[root@lnmp ~]# cat /etc/RedHat-release CentOS Linux release 7.2.1511 (Core) [root@lnmp ~]# uname -r3.10.0-327.28.2.el7.x86_64

2、卸载系统自带的mysql/mariadb数据库及boost旧版本

rpm -qa | grep mysqlrpm -qa | grep mariadbrpm -e --nodeps boost-system-1.53.0-25.el7.x86_64rpm -e --nodeps boost-thread-1.53.0-25.el7.x86_64rpm -e mariadb-libs-5.5.47-1.el7_2.x86_64rpm -e --nodeps mariadb-libs-5.5.47-1.el7_2.x86_64boost官网http://www.boost.org/ ,yum -y install boost boost-devel boost-doc安装的是boost1.53版本 

3、准备安装文件

[root@lnmp mysql]# lltotal 131096drwx------ 10501 games 4096 Aug 17 15:02 boost_1_59_0-rw-r--r--1 root root83709983 Aug 132015 boost_1_59_0.tar.gzdrwxr-xr-x 37 7161 31415 4096 Aug 17 15:48 mysql-5.7.14-rw-r--r--1 root root50517329 Aug 17 14:38 mysql-5.7.14.tar.gz 说明:mysql5.7系列指定boost版本为boost_1_59_0。资源下载地址:wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gzwget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.7/mysql-5.7.14.tar.gz 

4、依赖包安装

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

二、安装boost/mysql

1、安装boost

1 tar xvf boost_1_59_02 cd boost_1_59_03 ./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=gcc4 ./b2 toolset=gcc cxxflags="-std=c++11"5 ./b2 install --prefix=/usr/local/boost#备注:上面红色字体的内容,参考如下配置;上面绿色字体内容代表使用c++11标准,编译的库要使用统一标准。不使用,去掉绿色字体内容。 1 Component configuration: 2 - atomic : not building 3 - chrono : not building 4 - context: not building 5 - coroutine: not building 6 - date_time: not building 7 - exception: not building 8 - filesystem : building 9 - graph: not building10 - graph_parallel : not building11 - iostreams: not building12 - locale : not building13 - log: building14 - math : not building15 - mpi: not building16 - program_options: not building17 - python : not building18 - random : not building19 - regex: not building20 - serialization: not building21 - signals: not building22 - system : building23 - test : not building24 - thread : building25 - timer: not building26 - wave : not building #默认安装在/usr/local/lib目录下;头文件在/usr/local/include/boost目录下;install后面可以加参数 --prefix=/usr 来设置安装路径#如果提示boost版本不对应则卸载boost安装对应版本boost 

2、编译安装mysql

1 tar xvf mysql-5.7.14.tar.gz 2 cd mysql-5.7.14 3 4 cmake 5 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #MySQL的安装目录 6 -DMYSQL_DATADIR=/usr/local/mysql/data #MySQL的数据目录 7 -DSYSCONFDIR=/etc #my.cnf路径 8 -DWITH_MYISAM_STORAGE_ENGINE=1 #启用MySQL的myisam引擎 9 -DWITH_INNOBASE_STORAGE_ENGINE=1 #启用MySQL的innobase引擎10 -DWITH_MEMORY_STORAGE_ENGINE=1 #启用MySQL的memory引擎11 -DWITH_READLINE=1 #启用readline库支持(提供可编辑的命令行)12 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock #连接数据库socket路径13 -DMYSQL_TCP_PORT=3306 #MySQL端口14 -DENABLED_LOCAL_INFILE=1 #允??从本地导入数据15 -DWITH_PARTITION_STORAGE_ENGINE=1 #安装支持数据库分区16 -DEXTRA_CHARSETS=all #安装所有的字符集17 -DDEFAULT_CHARSET=utf8 #设置默认字符集为utf-818 -DDEFAULT_COLLATION=utf8_general_ci #设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)19 -DDOWNLOAD_BOOST=1 #下载boost20 -DWITH_BOOST=/usr/local//boost#boost的安装目录2122 make && make install 

三、配置mysql

1、创建用户,初始化数据库

groupadd mysqluseradd -g mysql -s /sbin/nologin mysql

2、授权mysql数据库目录

chown -R mysql:mysql /usr/local/mysql 

3、初始化mysql数据库

/usr/local/mysql/bin/mysqld
--initialize --user=mysql --datadir=/usr/local/mysql/data/

4、拷贝配置文件,修改配置文件

1 cp support-files/my-default.cnf /etc/my.cnf2 [root@lnmp ~]# cat /etc/my.cnf 3 # For advice on how to change settings please see 4 # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html 5 # *** DO NOT EDIT THIS FILE. It"s a template which will be copied to the 6 # *** default location during install, and will be replaced if you 7 # *** upgrade to a newer version of MySQL. 8 [mysqld] 9 # Remove leading # and set to the amount of RAM for the most important data10 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.11 # innodb_buffer_pool_size = 128M12 character_set_server=utf813 init_connect="SET NAMES utf8"14 #skip-grant-tables15 # Remove leading # to turn on a very important data integrity option: logging16 # changes to the binary log between backups.17 # log_bin18 # These are commonly set, remove the # and set as required.19 # basedir = .....20 #datadir =/usr/local/mysql/data21 # port = .....22 # server_id = .....23 # socket = .....24 # Remove leading # to set options mainly useful for reporting servers.25 # The server defaults are faster for transactions and fast SELECTs.26 # Adjust sizes as needed, experiment to find the optimal values.27 # join_buffer_size = 128M28 # sort_buffer_size = 2M29 # read_rnd_buffer_size = 2M 30 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 31 [client]32 default-character-set=utf8

5、拷贝启动文件,并授权

1、cp support-files/mysql.server /etc/init.d/mysqld2、chmod 755 /etc/init.d/mysqld

6 、启动数据库

/etc/init.d/mysqld start

三、更改初始化生成的数据库密码

注:由于5.7版本会初始化设置密码,需要自己修改,跟之前的数据库版本更改方式不一样。完整的更改MySQL密码的方式如下:
  • vim /etc/my.cnf 加入skip-grant-tables,免密码登录数据库
 注:我这里注释掉是改完之后再演示的。
  • 重启MySQL数据库
[root@lnmp ~]# /etc/init.d/mysqld restartShutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS!
  • 登录数据,修改密码即可,注5.7的password字段改为authentication_string
MySQLupdate mysql.user set authentication_string=password("root") where user="root" ;
  • 更改完后,注释掉my.cnf里面的skip-grant-tables 这一行,重启MySQL登录验证即可,然后就可以登录数据库进行一些简单的操作了。
[root@lnmp ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor.Commands end with ; or g.Your MySQL connection id is 3Server version: 5.7.14 Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type "help;" or "h" for help. Type "c" to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql|| performance_schema || sys|+--------------------+4 rows in set (0.00 sec)mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv|| db|| engine_cost || event || func|| general_log || gtid_executed || help_category || help_keyword|| help_relation || help_topic|| innodb_index_stats|| innodb_table_stats|| ndb_binlog_index|| plugin|| proc|| procs_priv|| proxies_priv|| server_cost || servers || slave_master_info || slave_relay_log_info|| slave_worker_info || slow_log|| tables_priv || time_zone || time_zone_leap_second || time_zone_name|| time_zone_transition|| time_zone_transition_type || user|+---------------------------+31 rows in set (0.00 sec)更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14 本文永久更新链接地址