1、二进制安装
1.1 安装相关包
[root@localhost ~]# yum -y install libaio numactl-libs
1.2、设置用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
1.3、准备程序文件
[root@localhost ~]# ls
anaconda-ks.cfg mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz sed test yanjiaxi.txt
[root@localhost ~]# tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@localhost local]# ll /usr/local/mysql-5.7.32-linux-glibc2.12-x86_64/
total 264
drwxr-xr-x 2 root root 4096 Mar 28 20:29 bin
drwxr-xr-x 2 root root 52 Mar 28 20:29 docs
drwxr-xr-x 3 root root 4096 Mar 28 20:29 include
drwxr-xr-x 5 root root 4096 Mar 28 20:29 lib
-rw-r--r-- 1 7161 31415 247914 Sep 23 2020 LICENSE
drwxr-xr-x 4 root root 28 Mar 28 20:29 man
-rw-r--r-- 1 7161 31415 587 Sep 23 2020 README
drwxr-xr-x 28 root root 4096 Mar 28 20:29 share
drwxr-xr-x 2 root root 86 Mar 28 20:29 support-files
[root@localhost local]# ln -s mysql-5.7.32-linux-glibc2.12-x86_64/ mysql
[root@localhost local]# chown -R root.root /usr/local/mysql/
1.4、配置环境变量
[root@localhost local]# echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysql.sh
[root@localhost local]# . /etc/profile.d/mysql.sh
1.5、准备配置文件
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql/
datadir=/data/mysql
server_id=6
port=3306
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[mysql]
socket=/data/mysql/mysql.sock
prompt=3306 [\\d]>
1.5、初始化数据
[root@localhost support-files]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
1.6、准备服务脚本和启动
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chkconfig --add mysqld
[root@localhost ~]# systemctl start mysqld
1.7、修改密码
方法1: 用SET PASSWORD命令
格式:mysql> set password for 用户名@localhost = password('新密码');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
2、多实例安装
2.1 安装相关包
[root@localhost ~]# yum -y install libaio numactl-libs
2.2、设置用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
2.3、准备程序文件
[root@localhost ~]# ll /app/
total 0
drwxr-xr-x 9 root root 120 Mar 28 23:16 mysql-5.7.32-linux-glibc2.12-x86_64
[root@localhost app]# mv mysql-5.7.32-linux-glibc2.12-x86_64/ mysql
[root@localhost app]# ls
3307 3308 3309 mysql
[root@localhost app]# tree 3307
3307
├── data
└── my.cnf
1 directory, 1 file
2.4、配置环境变量
[root@localhost local]# echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysql.sh
[root@localhost local]# . /etc/profile.d/mysql.sh
2.5、准备配置文件
[root@localhost 3307]# cat my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/3307/data
socket=/app/3307/mysql.sock
log_error=/app/3307/mysql.log
port=3307
server_id=7
log_bin=/app/3307/mysql-bin
[root@localhost system]# cat /app/3308/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/3308/data
socket=/app/3308/mysql.sock
log_error=/app/3308/mysql.log
port=3308
server_id=8
log_bin=/app/3308/mysql-bin
[root@localhost system]# cat /app/3309/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/3309/data
socket=/app/3309/mysql.sock
log_error=/app/3309/mysql.log
port=3309
server_id=9
log_bin=/app/3308/mysql-bin
2.6、初始化三个实例
mysqld --initialize-insecure --user=mysql --datadir=/app/3307/data --basedir=/app/mysql
mysqld --initialize-insecure --user=mysql --datadir=/app/3308/data --basedir=/app/mysql
mysqld --initialize-insecure --user=mysql --datadir=/app/3309/data --basedir=/app/mysql
2.7 systemd管理多实例
cd /etc/systemd/system
cp /app/mysql/support-files/mysql.service mysqld3307.service
cp /app/mysql/support-files/mysql.service mysqld3308.service
cp /app/mysql/support-files/mysql.service mysqld3309.service
[root@localhost system]# cat mysqld3307.service
[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=/app/3307/my.cnf
LimitNOFILE = 5000
vim mysqld3308.service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
chown -R mysql.mysql /app/* #授权
2.8、启动多实例
systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service
2.9、验证
[root@localhost ~]# netstat -lnp|grep 330
[root@localhost ~]# mysql -S /app/3309/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>