CentOS7 系统中MySQL源码编译安装

操作系统:CentOS Linux release 7.8.2003 (Core)

Mysql版本:5.7.31

下载源码安装包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.31.tar.gz

(Mysql5.7以后在cmake时必须指定boost,源码包有含boost的和不含boots的,这里下载含boost的源码包,安装更方便)

#依赖工具根据安装 #

[root@localhost ~]# yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

(注:以上为编译所需基本工具,根据自身系统按需安装)

各工具的作用

1> gcc

GCC(GNU Compiler Collection)是Linux下的编译工具,可编译c,c++,Objective-C、Fortran、Java等语言编写的代码。mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本。

1> cmake

根据CMakeLists.txt文件生成makefile,makefile中存放批量编译处理源文件的命令。这里需要2.8.9及以上版本。

2> make

根据makefile调用gcc完成编译工作。

4> Boost
https://www.boost.org/
mysql源码中用到了C++的Boost库,要求必须安装boost1.66.0或以上版本

5> bison
Linux下C/C++语法分析器

6> ncurses

字符终端处理库

创建msyql用户

[root@localhost ~]# groupadd mysql

[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql

创建安装目录和数据目录

[root@localhost ~]# mkdir -p /usr/local/mysql
[root@localhost ~]# mkdir -p /usr/local/mysql/data

#解压安装包#
[root@localhost opt]# tar -zxvf mysql-boost-5.7.31.tar.gz

生成makefile文件

进入解压后的文件夹中执行

[root@localhost mysql-5.7.31]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost -DWITHOUT_PARTITION_STORAGE_ENGINE=0

(此处为一整条命令)
以上命令参数说明如下:

-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DWITH_BOOST:boost源码路径
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
 DWITHOUT_PARTITION_STORAGE_ENGINE: 启用PARTITION_STORAGE引擎

编译

生成makefile文件成功之后执行make

#安装#
执行make install完成安装

配置

1.配置my.cnf文件

如果已有my.cnf文件,把已有的my.cnf更名为my.cnf.bak,然后新建

[root@localhost ~]# mv /etc/my.cnf /etc/my.cnf.bak

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

请根据实际情况添加参数

2.目录权限修改

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/data
[root@localhost ~]# chmod 755 /usr/local/mysql -R
[root@localhost ~]# chmod 755 /usr/local/mysql/data -R

3.初始化及启动

进入/usr/local/mysql/bin目录下(如果没进到这个目录,会找不到相关的命令)

初始化

[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/

(此步会生成初始密码,需记住)

[root@localhost bin]# ./mysql_ssl_rsa_setup

创建软链接

创建软连接,方便命令行链接,非必须。
[root@localhost bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

[root@localhost bin]# cp /usr/local/mysql/bin/mysql /usr/bin/mysql

启动mysql

[root@localhost bin]# ./mysqld_safe --user=mysql

[root@localhost bin]# mysql -uroot -p

(进入MySQL)

mysql> create user root@’%’ identified by ‘123456’;

(修改账号密码)

忘记密码解决方法:

1、在配置文件my.cnf中添加–skip-grant-tables 跳过密码验证;

2、执行service myslq restart重启MySQL,并登录;

3、执行update mysql.user set authentication_string=password(‘newpassword’) where User=‘root’ and host=‘localhost’; 设置新密码;(注意:密码字段在老版本中为password,新版本为authentication_string)

4、flush privileges;

5、执行service myslq restart重启MySQL。

修改密码:

登入MySQL后执行set PASSWORD=PASSWORD(‘newpassword’)

参考链接:

https://www.cnblogs.com/chenqs/p/8911670.html
https://www.cnblogs.com/zhangjianqiang/p/10150630.html
https://blog.csdn.net/OrangeHap/article/details/80220460
https://www.jb51.net/article/71860.htm

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值