操作系统: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