Linux(CentOS7)源码安装mysql5.7(非rpm方式)步骤

为什么需要源码安装,而不用rpm,yum等方式?

1.1 源码安装优点
1、文档齐全
2、因为可以定位到代码,所以debug方便
3、本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)

1.2 源码安装的缺点
1、编译麻烦
2、缺乏自动依赖管理,软件升级麻烦

综上所述,源码安装的好处如下:
最大的好处就是可以自行调整编译参数,最大化地定制安装结果。

2.mysql 5.7安装流程 (CentOS Linux release 7.6.1810 (Core) )

由于服务器是公司的,只能访问内网。所以只能在外部先下好,接入内网后可以通过lrzsz传过去。
1.下载mysql5.7的gz包 mysql-5.7.31-linux-glibc2.12-x86_64.tar
以及其他所需,并传到服务器中去。

2.建立放置mysql和数据的文件夹。
mkdir -p /data/soft
mkdir -p /data/data

3.创建mysql用户组和用户mysql
groupadd mysql
useradd -r -g mysql mysql

4.
chown -R mysql:mysql /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/

5.修改配置文件/etc/my.cnf
vim /etc/my.cnf
(注意文件中client和mysqld下都要配置socket位置)
my.cnf的内容如下:
[mysqld]
basedir=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64
datadir=/data/data
port = 3306
socket=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp/mysql.sock

symbolic-links=0
log-error=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log/mysqld.log
pid-file=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp/mysqld/mysqld.pid
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
[client]
default-character-set=utf8
socket=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp/mysql.sock
port = 3306
[mysql]
default-character-set=utf8

[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000

init_connect=‘SET collation_connection = utf8_unicode_ci’
init_connect=‘SET NAMES utf8’
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

#include all files from the config directory
#!includedir /etc/my.cnf.d

6.创建配置文件中的各个目录
#创建文件/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp/mysql.sock:设置用户组及用户,授权
mkdir /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp
chown -R mysql:mysql /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp
cd /tmp
touch mysql.sock
chown mysql:mysql mysql.sock
chmod 755 mysql.sock

7.#创建文件/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/tmp/mysqld/mysqld.pid:
mkdir mysqld
cd mysqld
touch mysqld.pid
cd …
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid

8.
#创建文件/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log/mysqld.log:
touch /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log/mysqld.log
chown -R mysql:mysql /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log
cd /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log
chmod 755 mysqld.log

9.初始化安装数据库
#进入bin目录:
cd /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/bin
./mysqld --initialize --user=mysql --basedir=/data/soft/mysql-5.7.31-linux-glibc2.12-x86_64–datadir=/data/data
【【【#注:这条命令运行可能出现错误

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法: yum install -y libaio,再重新执行】】】

10.安全启动mysql
进入到mysql的bin目录

#安全启动:
./mysqld_safe --user=mysql &

#是否启动成功,可以通过查看mysql进程
ps -ef | grep mysql

Linux(CentOS7)源码安装mysql5.7(非rpm方式)步骤

#默认密码在mysqld.log日志里, 找到后保存到安全的地方:
cat /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/log/mysqld.log
mysqld.log文件内容:
Linux(CentOS7)源码安装mysql5.7(非rpm方式)步骤

cd /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/bin/
./mysql -u root -p
输入刚才查log得到的初始密码

#假设密码修改为root
mysql> set password=password(‘root’);

#设置远程登录权限
mysql> grant all privileges on . to ‘root’@’%’ identified by ‘root’;

#立即生效:
mysql> flush privileges;

#退出quit 或者 exit;
mysql> quit;

11.设置开机启动
cp -a /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql
#mysql注册为开机启动的服务:
chkconfig --add mysql
#启动 或 停止
service mysql start 或 systemctl start mysql
service mysql stop 或 systemctl stop mysql

12.创建快捷方式
#服务启动后,直接运行mysql -u root -p即可登录,不需要进入到对应的目录。
ln -s /data/soft/mysql-5.7.31-linux-glibc2.12-x86_64/bin/mysql /usr/bin
(注意创建软连接必须使用绝对路径)

至此全部完成
Linux(CentOS7)源码安装mysql5.7(非rpm方式)步骤

参考文档:https://blog.csdn.net/wenbsu/article/details/93928325