CentOS 7二进制安装MySQL

第一部分:环境说明

(1)系统环境

[root@master 3308]# cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

(2)mysql版本

mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

下载路径:链接:https://pan.baidu.com/s/1nDKvZNivxqwDwrVH9Wt_xQ

提取码:pk0v

第二部分:mysql结构和安装规划

(1)mysql结构

mysql结构=软件部分(/app/mysql)+数据部分(/data/3306)

(2)总体说明

①创建一个/server/tools目录,用于存放mysql二进制安装包

②创建/app(存放软件部分)和/data(存放数据部分)两个目录,然后再在/data目录下创建一个3306子目录

③创建一个mysql用户(自动创建mysql组),管理/app和/data两个目录

④由于是二进制安装,所以软件部分的生成无须编译,解压目录、重命名,然后将其移动到/app目录下即可

⑤初始化过程用于生成数据文件(C6和C7有一些区别)

⑥制作my.cnf文件,其默认位置是/etc/my.cnf

⑦制作启动脚本(C6和C7有一些区别,C6习惯采用sys-v方式-->类似于/etc/init.d/mysqld start等,C7习惯采用systemd方式-->类似于systemctl start mysqld等)

⑧启动mysql,然后验证

第三部分:安装过程

(1)创建一个/server/tools目录,用于存放mysql二进制安装包

①创建目录

[root@master 3308]# mkdir /server/tools -p

②rz -y上传文件

[root@master tools]# ll
total 629764
-rw-r--r-- 1 root root 644869837 Oct 10 2020 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

③解压(时间比较久)

[root@master tools]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

④重命名

[root@master tools]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

[root@master tools]# ll
total 629764
drwxr-xr-x 9 root root 129 Jun 18 16:11 mysql
-rw-r--r-- 1 root root 644869837 Oct 10 2020 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

(2)创建/app(存放软件部分)和/data(存放数据部分)两个目录,然后再在/data目录下创建一个3306子目录

[root@master tools]# mkdir /app/ -p
[root@master tools]# mkdir /data/3306/{data,binlog}  -p

(3)创建一个mysql用户(自动创建mysql组),管理/app和/data两个目录

创建用户

[root@master tools]# useradd mysql -s /sbin/nologin -M

[root@master tools]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)

(4)移动/server/tools/mysql目录到/app/下(充实软件部分)

[root@master tools]# mv /server/tools/mysql /app/

[root@master tools]# ll /app/
total 0
drwxr-xr-x 9 zh zh 129 Jun 18 11:41 mysql

授权

[root@master tools]# chown -R mysql.mysql /app

[root@master tools]# chown -R mysql.mysql /data

(5)初始化过程用于生成数据文件

[root@master tools]# /app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3306/data

说明:

①--initialize-insecure:用于生成空密码,mysql自5.7开始,会自动生成一个临时密码(复杂度、过期时间)

②--user=mysql:表示数据库傀儡用户

③--basedir:软件目录

④--datadir:数据目录

(6)制作my.cnf文件,其默认位置是/etc/my.cnf

说明:由于这里不是多实例,因此将配置文件放到默认位置即可(/etc/my.cnf)

cat >/etc/my.cnf<<EOF
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/3306/data
server_id=6
port=3306
socket=/data/3306/mysql.sock
log_bin=/data/3306/binlog/mysql-bin
[mysql]
socket=/data/3306/mysql.sock
EOF

(7)制作启动脚本

cat >/etc/systemd/system/mysqld3306.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

说明:启动脚本通常需要关联my.cnf配置文件。

(8)启动mysql,然后验证

启动:systemctl start mysqld3306

[root@master tools]# /app/mysql/bin/mysql -uroot -S /data/3306/mysql.sock -e "select @@server_id"

说明:初始登录,无密码

有密码登录方式(随后需要输入密码):

[root@master tools]# /app/mysql/bin/mysql -uroot -p -S /data/3306/mysql.sock 

第四部分:优化

(1)将/app/mysql/bin/加入系统环境变量,永久生效

①导入系统环境变量

[root@master tools]# echo 'export PATH=/app/mysql/bin/:$PATH' >> /etc/profile
[root@master tools]# tail -1 /etc/profile

export PATH=/app/mysql/bin/:$PATH

其他方法:ln -s /app/mysql/bin/* /usr/local/sbin/,用软链接将命令所在路径放在全局路径/usr/local/sbin/下面。

②重新加载环境变量
[root@master tools]# source /etc/profile

(2)mysql登录验证,不写用户,默认root登录;不考虑多实例情况,可以省略socket文件书写,简化书写如下

[root@master tools]# /app/mysql/bin/mysql  -e "select @@server_id"

或者[root@master tools]# mysql  -e "select @@server_id"

(3)多实例只需要设置

①数据目录:datadir=/data/3306/data

②my.cnf:配置文件路径/data/3306/my.cnf,修改server_id、port等参数

③启动脚本:/etc/systemd/system/mysqld3306.service作如下修改

ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3306/my.cnf

参考网址:https://www.jianshu.com/p/e872bc12f583

原文地址:https://www.cnblogs.com/zxjcwang/p/14900012.html