前言
使用MySQL版本:mysql-5.7.20
centos版本:7.6
安装包链接:https://pan.baidu.com/s/1Tu39eOK14afGyhFQyP_SzA
提取码:lzsw
1、删除MySQL的安装文件
查询MySQL的安装文件
find / -name mysql
卸载:
mv /usr/local/mysql /tmp
2、删除MySQL的配置文件
删除/etc/my.cnf文件
删除/etc/init.d/下跟mysql有关的全部文件,一般包括mysql文件或mysqld文件
二、开始安装
1.先将要tar包上传到/usr/local/mysql目录里。【注:先创建mysql文件夹】
mkdir -p /usr/local/mysql
cd /usr/local/mysql
2.进行解压
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz #解压5.7
3.把解压的安装包重命名一下为mysql_3307
mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql_3307
4.把mysql的指令加入系统配置文件中,后面再次使用mysql相关指令时,不用进入MySQL的bin目录里面也可以执行
echo 'export PATH=/usr/local/mysql/mysql_3307/bin:$PATH' >> /etc/profile
. /etc/profile #重新加载profile文件 【注】:. /中间是会空一格的
5.添加用户、用户组
groupadd mysql
useradd -r -g mysql mysql
6.检查是否安装libaid
rpm -qa |grep libaio
6.1 若没有安装,使用如下命令安装:
yum search libaio
yum install libaio-devel.x86_64 -y
# 安装8.0需要加上
# yum -y install numactl
7 .配置my3306.cnf文件
【注】:一般是建立my.cnf配置文件,这里用于区分,我命名为my3307.cnf配置文件
以放到解压到的文件夹里,注意~该文件权限是644
mkdir -pv /usr/local/mysql/mysql_3307/etc/
touch /usr/local/mysql/mysql_3307/etc/my3307.cnf
#配置文件权限
chmod 644 /usr/local/mysql/mysql_3307/etc/my3307.cnf
#执行该指令,编辑配置文件
cat > /usr/local/mysql/mysql_3307/etc/my3307.cnf <<EOF
[mysqld]
bind-address=0.0.0.0
port=3307
user=mysql
#指定路径
socket=/tmp/mysql3307.sock
#指定pid存放路径
pid_file=/app/data/data_3307/data/my3307.pid
#设置MySQL的安装目录
basedir=/usr/local/mysql/my_3307
#设置MySQL数据库的数据的存放目录
datadir=/app/data/data_3307/data
#character config
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
symbolic-links=0
#log日志
log-error=/app/data/data_3307/logs/mysql3307.err
log_bin=/app/data/data_3307/binlog/mysql-bin
relay_log=/app/data/data_3307/relaylog/relay-bin
slow_query_log_file=/app/data/data_3307/logs/slow.log
slow_query_log=on
#这里的server-id是用于标识主从复制库的
server-id=1
#innodb settings
innodb_buffer_pool_size=128M
#无密码登录
#skip-grant-tables
#开启PGID
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt="(\\u@\\h :\D)[\\d]> "
socket=/tmp/mysql3307.sock
no-auto-rehash
#增强密码安全强度
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
EOF
8.创建data文件夹及其下面的mysql目录
#在data里建立这个四个目录,用于存储.cnf指定的路径
mkdir -pv /app/data/data_3307/{binlog,logs,data,relaylog}
9.将MySQL安装包目录和data目录下的所有所属用户和组改为MySQL
chown -R mysql:mysql /app/data/data_3307
chown -R mysql:mysql /usr/local/mysql/my_3307
10.mysql初始化
cd /usr/local/mysql/my_3307/bin
#初始化,指定刚才建立的cnf文件即可
mysqld --defaults-file=/usr/local/mysql/mysql_3307/etc/my3307.cnf --initialize-insecure
#更详细的初始化命令
mysqld --defaults-file=/usr/local/mysql/mysql_3307/etc/my3307.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql/mysql_3307 --datadir=/app/data/data_3307/data
-- 参数解释
--initialize-insecure
--initialize : 给root@'localhost'用户生成一个临时密码。四种复杂度的12位密码。
这个密码只能第一次登录使用,并且登录后无法CRUD数据库,需要改密后才行
#如果未能启动成功,把之前部分初始化的数据清空,然后再初始化一次,已经初始化成功,这条指令请忽略
rm -rf `ls /app/data/data_3307 |awk '{print $1"/*"}'`
查看初始密码:(如果在my3307.cnf配置文件里,加了skip-grant-tables参数,则查看不到登录密码)
#若执行此命令,没有显示密码信息,则在后面登录msyql输入密码的时候,回车即可
cat /app/data/data_3307/logs/mysql3307.err |grep password
启动mysql
#启动方法一
mysqld_safe --defaults-file=/usr/local/mysql/my_3307/etc/my3307.cnf &
#启动方法二
mysqld_safe --defaults-file=/usr/local/mysql/my_3307/etc/my3307.cnf --basedir=/usr/local/mysql/my_3307 --datadir=/app/data/data_3307/data &
#关闭数据库,这里只是记录,不用执行
mysqladmin -S /tmp/mysql3307.sock -u root -p shutdown #接下来输入root用户的密码即可关闭数据库
查看是否启动:
ps -ef|grep mysql
mysql> show global variables like 'port'; -- 查看当前端口号
登录MySQL
mysql -S /tmp/mysql3307.sock -P 3307 -u root -p
回车即可进入
#小技巧,可以把启动命令设置为别名,下次登录输入my3307即可
#永久设置:vim /etc/bashrc ,在最末尾加上alias语句即可
echo "alias my3307='mysql -u root -p -S /tmp/mysql3307.sock'" >> /etc/bashrc
. /etc/bashrc #重新加载文件