源码包安装MySQL-5.7.14

本文档详细介绍了如何在Linux环境下源码安装MySQL 5.7.14,包括检查源码包完整性、解压、创建MySQL用户、安装依赖、配置编译选项、处理编译错误、初始化数据库、设置权限、修改配置文件、启动服务以及登录和创建数据库等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①  下载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

存储引擎选项:

MyISAMMERGEMEMORY,和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库支持(zibgzib相关)

-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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值