您的位置:首页 > 数据库 > MySQL

源码包安装MySQL-5.7.14

2017-02-15 15:22 288 查看
①  下载MySQL源码包







检查文件的MD5,防止文件被篡改:



②  解压源码包



③  建立MySQL账号





④  安装所需要的工具





⑤  新版本的MySQL安装不同以前版本

      变化:

    1.boost库是必需的,解压后复制到/usr/local/boost目录下,cmake并在后面的选项中加上

-DWITH_BOOST=/usr/local/boost


    2.用cmake编译安装

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost


选项常用参数:

-DSYSCONFDIR=/etc/mysql
指向mysql配置文件目录(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin
指向插件目录(prefix/lib/mysql/plugin)
-DCMAKE_INSTALL_PREFIX=dir_name
设置mysql安装目录,默认/usr/local/mysql
-DMYSQL_UNIX_ADDR=file_name
设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name
设置服务器的字符集。指定服务器默认字符集,缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_setsNaNake文件包含允许的字符集名称列表。
-DMYSQL_USER=username
设置MySQL管理员
-DDEFAULT_COLLATION=utf8_general_ci
设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
启用:-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
禁用:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1
存储引擎选项:
MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE=
1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB),  PARTITION (partitioning support), 和PERFSCHEMA
 (Performance Schema)
-DMYSQL_DATADIR=dir_name
设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num
设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool
是否要下载可选的文件(BOOST类库)。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
-DWITH_BOOST=/usr/local/mysql/boost
指定编译需要boost类库,将在指定路径查找,如未找到会指定下载并解压到指定的路径

 
-DINSTALL_SBINDIR=sbin
指向可执行文件目录(prefix/sbin)

-DENABLED_LOCAL_INFILE=1
启用本地数据导入支持,默认OFF

WITH_COMMENT
指定编译备注信息

WITHOUT_xxx_STORAGE_ENGINE
指定不编译的存储引擎

SYSCONFDIR
初始化参数文件目录

MYSQL_UNIX_ADDR
socket文件路径,默认/tmp/mysql.sock

-DINSTALL_MANDIR=share/man
指向man文档目录(prefix/share/man)

-DINSTALL_SHAREDIR=share
指向aclocal/mysql.m4安装目录(prefix/share)

-DINSTALL_LIBDIR=lib/mysql
指向对象代码库目录(prefix/lib/mysql)

-DINSTALL_INCLUDEDIR=include/mysql
指向头文件目录(prefix/include/mysql)

-DINSTALL_INFODIR=share/info
指向info文档存放目录(prefix/share/info)
prefix官方推荐设为/usr

-DWITH_READLINE=1
启用readline库支持(提供可编辑的命令行)

-DWITH_SSL=system
启用ssl库支持(安全套接层)

-DWITH_ZLIB=system
启用libz库支持(zib、gzib相关)

-DWTIH_LIBWRAP=0
禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用)

-DMYSQL_TCP_PORT=3306
指定TCP端口为3306

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
指定mysql.sock路径

-DENABLED_LOCAL_INFILE=1
启用本地数据导入支持

-DEXTRA_CHARSETS=all
启用额外的字符集类型(默认为all)

-DWITH_EMBEDDED_SERVER=1
编译嵌入式服务器支持

-DWITH_DEBUG=0
禁用debug(默认为禁用)

-DENABLE_PROFILING=0
 禁用Profiling分析(默认为开启)

-DWITH_COMMENT='string' 
一个关于编译环境的描述性注释 

指定选项编译:



cmake 报错一:



解决:

①查资料说的是缺少ncurses-devel,yum安装一下或下载rpm包安装

 


②每次重新编译之前都需要删除掉上次安装过程中产生的缓存文件:



报错二:再重新cmake一次,再次报错,部分错误信息如下



原因:(没有安装C++工具)







编译成功:



接下来编译安装:

make && make install


 

安装成功后初始化MySQL:



 

进入到mysql目录更改相关目录属性: 

chown -R root .        //递归修改当前目录所有者为root
chown -R mysql data    //递归修改data目录的所有者为mysql


后台启动mysqld服务失败:



官网说明运行mysql_install_db时会在安装目录创建一个默认选项的配置文件,名为my.cnf。



安装时指定过配置文件路径在/etc,所以修改配置文件/etc/my.cnf:





再次报错:



查看日志:





提示数据目录不为空:



 

删掉该目录下文件:

rm -rf /usr/local/mysql/data/*


再次初始化:(提示mysql_install_db已经过时,考虑使用mysqld --initialize)



启动成功:



查看端口:



5.7版本默认会生成root初始密码文件(/root.mysql_secret)



登录:



修改密码:





mysql> use mysql;
mysql> update user set authentication_string=password('redhat') where User='root';
mysql> flush privileges;


查看databases:



创建库:



将需要用到的命令链接到/usr/bin目录下:

[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysqldump /usr/bin/


启动时报错:

ERROR! MySQL server PID file could not be found!


my.cnf配置出错引起 ,执行命令:vi /etc/my.cnf  修改内容:

# The MySQL server

[mysqld]

datadir=/data/mysqldb                     //指定的datadir路径

socket=/var/lib/mysql/mysql.sock    //为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件)

user=mysql                           //指定使用mysql用户启动mysqld,mysqld默认拒绝用户使用root帐户启动

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log         //错误日志路径

pid-file=/var/lib/mysql/mysql.pid      //为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);
Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。

第一次启动mysql须初始化mysql权限表,否则没有socket文件无法启动

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息