共计 6200 个字符,预计需要花费 16 分钟才能阅读完成。
CentOS 7.2 编译安装 MySQL 5.7.14
一、环境准备
1、查看系统版本
1
2
3
4
|
[root@lnmp ~]# cat /etc/RedHat-release CentOS Linux release 7.2.1511 (Core) [root@lnmp ~]# uname -r 3.10.0-327.28.2.el7.x86_64 |
2、卸载系统自带的 mysql/mariadb 数据库及 boost 旧版本
rpm -qa | grep mysql | |
rpm -qa | grep mariadb | |
rpm -e --nodeps boost-system-1.53.0-25.el7.x86_64 | |
rpm -e --nodeps boost-thread-1.53.0-25.el7.x86_64 | |
rpm -e mariadb-libs-5.5.47-1.el7_2.x86_64 | |
rpm -e --nodeps mariadb-libs-5.5.47-1.el7_2.x86_64 | |
boost 官网 http://www.boost.org/,yum -y install boost boost-devel boost-doc 安装的是 boost1.53 版本 |
3、准备安装文件
[root@lnmp mysql]# ll | |
total 131096 | |
drwx------ 10 501 games 4096 Aug 17 15:02 boost_1_59_0 | |
-rw-r--r-- 1 root root 83709983 Aug 13 2015 boost_1_59_0.tar.gz | |
drwxr-xr-x 37 7161 31415 4096 Aug 17 15:48 mysql-5.7.14 | |
-rw-r--r-- 1 root root 50517329 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.gz | |
wget 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_0 | |
2 cd boost_1_59_0 | |
3 ./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=gcc | |
4 ./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 building | |
10 - graph_parallel : not building | |
11 - iostreams : not building | |
12 - locale : not building | |
13 - log : building | |
14 - math : not building | |
15 - mpi : not building | |
16 - program_options : not building | |
17 - Python : not building | |
18 - random : not building | |
19 - regex : not building | |
20 - serialization : not building | |
21 - signals : not building | |
22 - system : building | |
23 - test : not building | |
24 - thread : building | |
25 - timer : not building | |
26 - 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-8 | |
18 -DDEFAULT_COLLATION=utf8_general_ci \ #设定默认排序规则(utf8_general_ci 快速 /utf8_unicode_ci 准确)19 -DDOWNLOAD_BOOST=1 \ #下载 boost | |
20 -DWITH_BOOST=/usr/local//boost #boost 的安装目录 | |
21 | |
22 make && make install |
三、配置 mysql
1、创建用户,初始化数据库
groupadd mysql | |
useradd -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.cnf | |
2 [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 data | |
10 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. | |
11 # innodb_buffer_pool_size = 128M | |
12 character_set_server=utf8 | |
13 init_connect='SET NAMES utf8' | |
14 #skip-grant-tables | |
15 # Remove leading # to turn on a very important data integrity option: logging | |
16 # changes to the binary log between backups. | |
17 # log_bin | |
18 # These are commonly set, remove the # and set as required. | |
19 # basedir = ..... | |
20 #datadir = /usr/local/mysql/data | |
21 # 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 = 128M | |
28 # sort_buffer_size = 2M | |
29 # 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/mysqld | |
2、chmod 755 /etc/init.d/mysqld |
6、启动数据库
/etc/init.d/mysqld start
三、更改初始化生成的数据库密码
注:由于 5.7 版本会初始化设置密码,需要自己修改,跟之前的数据库版本更改方式不一样。
完整的更改 MySQL 密码的方式如下:
- vim /etc/my.cnf 加入 skip-grant-tables,免密码登录数据库
注:我这里注释掉是改完之后再演示的。
- 重启 MySQL 数据库
[ | ]|
Shutting down MySQL.. SUCCESS! | |
Starting MySQL. SUCCESS! |
- 登录数据,修改密码即可,注 5.7 的 password 字段改为 authentication_string
MySQL | |
update mysql.user set authentication_string=password('root') where user='root' ; |
- 更改完后,注释掉 my.cnf 里面的 skip-grant-tables 这一行,重启 MySQL 登录验证即可,然后就可以登录数据库进行一些简单的操作了。
[root@lnmp ~]# mysql -uroot -p | |
Enter password: | |
Welcome to the MySQL monitor. Commands end with ; or \g. | |
Your MySQL connection id is 3 | |
Server version: 5.7.14 Source distribution | |
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. | |
Oracle is a registered trademark of Oracle Corporation and/or its | |
affiliates. Other names may be trademarks of their respective | |
owners. | |
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 mysql | |
Reading table information for completion of table and column names | |
You can turn off this feature to get a quicker startup with -A | |
Database changed | |
mysql> 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
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137669.htm
正文完
星哥玩云-微信公众号
