安装环境
[root@localhost ~]# cat /etc/centos-release
CentOS Linux 版本 7.0.1406(核心)
1。从mysql官网下载mysql-community-5.7.11-1.el7.src.rpm源码包
rpm -ih mysql-community-5.7.11-1.el7.src.rpm 将在用户目录中生成 rpmbuild。您可以从 SOURCES 文件夹中获取源代码 mysql-5.7.11.tar.gz 并解压。源码目录已经准备好安装了
2。因为mysql需要使用cmake编译,直接从yum光盘的源码中找到cmake
[root@localhost ~]# yum info cmake
名称:cmake
架构:x86_64
版本:2.8.11
发布:4.el7
大小:6.7 M
3。准备开发环境 yum groupinstall 附加开发。之前版本的 yum groupinstall 开发工具包含两个软件包组:开发工具和开发库。我这里没有安装它们,因为我只需要 gcc 和 gcc-c++
一些常用的编译选项
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL安装根目录]-- 运行 cmake 版本 2.8.11
-- 找不到 Git(缺少:GIT_EXECUTABLE)
-- 使用 MAX_INDEXES = 64U 进行配置
-- C 编译器标识未知
- - CXX 编译器标识未知
CMake 错误:您的 C 编译器:未找到“CMAKE_C_COMPILER-NOTFOUND”。请将 CMAKE_C_COMPILER 设置为有效的编译器路径或名称。
CMake 错误:您的 CXX 编译器:未找到“CMAKE_CXX_COMPILER-NOTFOUND”。请将 CMAKE_CXX_COMPILER 设置为有效的编译器路径或名称。
cmake/os/Linux.cmake 处的 CMake 错误:41 (MESSAGE):
不支持的编译器!
调用堆栈(首先是最近的调用):
CMakeLists.txt:162(包括)
这是没有安装gcc和gcc-c++
[root@localhost mysql-5.7.11]# yum install gcc gcc-c++
再cmake一次
-- MySQL 5.7.11
-- 打包为:mysql-5.7.11-Linux-x86_64
-- 查找 boost/version.hpp 和
-- BOOST_INCLUDE_DIR BOOST_INCLUDE_DIR-NOTFOUND
-- LOCAL_BOOST_DIR
-- LOCAL_BOOST_ZIP
-- 找不到 boost(正确版本)。
-- MySQL 目前需要 boost_1_59_0
cmake/boost.cmake:81 处的 CMake 错误 (MESSAGE):
您可以使用 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
此 CMake 脚本将在
它将为您下载并解压它(在该目录中)。
如果您位于防火墙内,您可能需要使用http代理:
导出http_proxy=http://www.gsm-guard.net:80
调用堆栈(首先是最近的调用):
cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:443 (INCLUDE)
--配置不完整,出现错误!
这已经说明了你可以用-DDOWNLOAD_BOOST=1 -DWITH_BOOST=
首先从boost官网下载这个库boost_1_59_0.tar.gz
解压后,将目录添加到-DWITH_BOOST编译选项
继续编译,错误如下
-- 找不到 Curses(缺少:CURSES_LIBRARY CURSES_INCLUDE_PATH)
cmake/readline.cmake:64 处发生 CMake 错误(消息):
未找到 Curses 库。请安装适当的软件包,
删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,软件包名称为 libncurses5-dev,在 Redhat 及其衍生版本上为 ncurses-devel。
调用堆栈(首先是最近调用):
cmake/ readline.cmake:107 (FIND_CURSES)
cmake/readline.cmake:181 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:471 (MYSQL_CHECK_EDITLINE)
此错误表示 Curses 库 yum install ncurses-devel 丢失。需要注意的是,对于每个编译错误,都必须删除 CMakeCache.txt。最后,Build文件已写入成功
CMake 警告:
项目未使用手动指定的变量:
DOWNLOAD_BOOST
WITH-LIBWRAP
WITH_MEMORY_STORAGE_ENGINE
WITH_READLINE
-- 构建文件已写入:/root/mysql-5.7.11
使用make编译大约花了两个小时,到了50%以上的时候就停留了很长一段时间。
安装
会出现一堆安装信息,安装完成
-- 安装:/usr/local/mysql/mysql-test/./cmake_install.cmake
-- 安装:/usr/local/mysql/mysql-test/./CTestTestfile.cmake
- - 最新:/usr/local/mysql/mysql-test/mtr
-- 最新:/usr/local/mysql/mysql-test/mysql-test-run
- - 安装:/usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- 最新:/usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- 安装:/usr/local/mysql/mysql-test/lib/My/SafeProcess/www.gsm-guard.net
-- 安装:/usr/local/mysql/support-files/my-default.cnf
-- 安装:/usr/local/mysql/support-files/mysqld_multi.server
-- 安装:/usr/local/mysql/support-files/mysql-log-rotate
-- 安装: /usr/local/mysql/support-files/magic
-- 安装: /usr/local/mysql/share/aclocal/mysql.m4
-- 安装: /usr/local/mysql/support-文件/mysql.server
[root@localhost mysql-5.7.11]#
socket=/var/run/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /mymnt/sqldata
socket=/var/run/mysql/mysql.sock
日志错误 = /var/log/mysql/error.log
pid 文件 = /var/log/mysql/www.gsm-guard.net
配置文件中与目录相关的部分,我们需要创建/var/run/mysql、/mymnt/sqldata、/var/log
创建mysql用户和组,并将数据目录/mymnt/sqldata和安装目录/var/run/mysql的所有者(组)更改为mysql
[root@localhost mysql]# groupadd -r mysql
[root@localhost mysql]# useradd -r -g mysql -s /sbin/nologin mysql
[root@localhost mysql]# mkdir /var/run/mysql
[root@localhost mysql]# mkdir /var/log/mysql
[root@localhost mysql]# chown mysql:mysql /var /run/mysql/
[root@localhost mysql]# chown mysql:mysql /var/log/mysql/
[root@localhost mysql]# chown mysql:mysql /mymnt/sqldata/
[root @localhost mysql]# chown -R mysql:mysql /usr/local/mysql
1。 mysql-5.7版本的my.cnf文件在support-files/下没有模板文件。自己添加配置文件
2。将安装目录下的support-files/mysql.server启动脚本复制到/etc/init.d/mysqld下启动。也可以使用 [root@localhost mysql]# ./support-files/mysql.server start 临时启动
未启动时执行mysql命令会报如下错误:
[root@localhost mysql]# mysql
错误 2002 (HY000): 无法通过套接字 '/var/run/mysql/mysql.sock' 连接到本地 MySQL 服务器 (2)
3。添加环境变量以使用初始化命令export PATH=/usr/local/mysql/bin:$PATH
4。初始化
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mymnt/sqldata
1,mysqld_safe
mysqld和mysqld_safe都可以启动mysql。直接运行mysqld程序来启动MySQL服务的情况很少见。 mysqld_safe脚本将在启动后继续监视MySQL服务器的运行情况,如果崩溃则重新启动它。
我们可以发现这是一个shell脚本。推荐使用 mysqld_safe 在 Unix 和 NetWare 中启动 mysqld 服务器。 mysqld_safe 添加了一些安全功能,例如发生错误时重新启动服务器以及将运行时信息写入错误日志文件。
[root@localhost mysql]# file bin/mysqld
bin/mysqld:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (GNU/Linux),动态链接(使用共享库),适用于 GNU /Linux 2.6.32,BuildID[sha1]=0x772828c9d330090391cd89dbe699f041a378944d,未剥离
[root@localhost mysql]# file bin/mysqld_safe
bin/mysqld_safe:POSIX shell 脚本,ASCII 文本可执行文件
2、mysql_secure_installation
MySQL 安全配置向导,运行 mysql_secure_installation 会进行多项设置:
a) 设置 root 用户的密码
b) 删除匿名帐户
c) 取消 root 用户的远程登录
d) 删除测试库以及测试库的访问权限
e) 刷新授权表,使修改生效
通过这些设置,可以提高mysql库的安全性。建议在生产环境,mysql安装完成后一定要运行一次mysql_secure_installation
3。为了方便其他程序调用(如php),将MySQL数据库的动态链接库目录添加到系统链接库中,echo "/usr/local/mysql/lib" > /etc/ld.so.conf。 d/mysql.conf
百度到一个mysql配置文件示例: