Mysql5.7.20数据库的安装

概述

今天公司安排我做ECS上的自建数据库与RDS进行主从复制,给RDS数据库减轻压力做读写分离,前提就是RDS上数据库的版本要与ECS的自建数据库版本相同,Mysql5.7是真的坑爹,各种坑,记录一下,至于RDS怎么操作,这个到时候直接提工单就可以让他们售后帮你了!

准备工作

1 mysql-5.7.20-linux-glibc-2.12-x86_64.tar.gz
链接: https://pan.baidu.com/s/1KgW6k5pdR02J1PWPCGuLNQ 密码: uw6p
2 关闭防火墙,如果生产环境需要打开,则配置防火墙策略
3 关闭selinux

1 卸载系统自带的所有关于mysql或mariadb的软件包

 #这两条执行都没有结果则可以安装,有结果的话,将结果卸载
 [root@localhost ~]# rpm -qa | grep mysql    
 [root@localhost ~]# rpm -qa | grep mariadb
 #以下两条为卸载命令
 [root@localhost ~]# yum remove mysql*
 [root@localhost ~]# yum remove mariadb* 

2 将软件包上传至服务器的某个目录并解压

 #进入到工作目录
 [root@localhost ~]# cd /app
 #上传命令
 [root@localhost app]# rz   
 #解压文件至当前目录
     z:表示tar包是被gzip模式压缩的,所以解压使用gunzip解压
     x:从tar包中把文件提取出来
     v:显示解压的详细过程
     f:指定被处理的文件,一般都跟在参数后面
 [root@localhost ~]# tar zxvf mysql-5.7.20-linux-glibc-2.12-x86_64.tar.gz
 #将解压后的文件夹改名为mysql方便后续操作,也方便输入
 [root@localhost ~]# mv mysql-5.7.20-linux-glibc-2.12-x86_64 mysql

3 初始化数据库并更改root密码

#进入改名后的mysql文件夹初始化
[root@localhost app]# cd Mysql

#创建mysql用户并设置为系统用户不可登陆(如果已经有了则可以忽略)
[root@localhost mysql]# useradd -r mysql -s /sbin/nologin

#执行初始化脚本,执行完毕后只要没有error提示的错误,其余都可以忽略
    --user:指定初始化数据库的用户
    --basedir:指定数据库的安装目录
    --datadir:指定数据库数据的存放位置
[root@localhost mysql]# ./bin/mysql_install_db --user=mysql \
                                               --basedir=/app/mysql
                                               --datadir=/app/mysql/data

#进入mysql的启动脚本存放位置更改文件
[root@localhost mysql]#cd /app/mysql/support-files

#更改脚本内的basedir与datadir两个位置
[root@localhost support-files]# vim mysql.server
            basedir=/app/mysql          #将这两行添加为初始化时指定的内容
            datadir=/app/mysql/data     
            :wq!                        #保存且推出vim编辑器

#更改mysql文件夹的属主与属组为mysql
            -R:将父级目录配置的权限同时递归到自目录
[root@localhost support-files]#chown -R mysql:mysql /app/mysql

#回到mysql的bin目录下,执行后台启动mysql
[root@localhost support-files]# cd /app/mysql/bin

#以跳过密码的方式启动mysql
[root@localhost bin]# ./mysqld_safe --skip-grant-tables &

#进入数据库更改密码
[root@localhost bin]# ./mysql
#应用到mysql库,因为user表在mysql库中
mysql> use mysql;

#修改root用户密码,由于版本为5.7,password字段改为了authentication_string字段
mysql> UPDATE user SET authentication_string=password('testpassword') where user='root';

#刷新表生效
mysql> flush privileges;

#退出数据库
mysql> exit

#找到运行中的mysql进程
[root@localhost /app/mysql/bin]# ps aux | grep mysql

#将进程杀掉
[root@localhost /app/mysql/bin]# kill "Mysql PID号"

#进入mysql启动脚本目录下
[root@localhost /app/mysql/bin]# cd /app/mysql/support-files

#执行脚本正式启动Mysql
[root@localhost support-files]# ./mysql.server start
Starting MySQL. SUCCESS!    #看到这个证明成功,不成功的查看一下mysql目录是否有权限

#再次登陆数据库,返回到bin目录下
[root@localhost /app/mysql/bin]# ./mysql -u root -p
Enter password:                 #此处输入刚才修改的root密码

#此处还需要继续修改密码,否则什么SQL都无法执行
mysql> SET PASSWORD=PASSWORD('newpassword');
mysql> UPDATE USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> flush privileges;
mysql> exit

4 配置数据库的my.cnf,Mysql5.7安装后没有自带的my.cnf需要自己配置

[root@localhost /app/mysql/bin]# vim /etc/my.cnf
[mysqld]
user=mysql
server_id = 1
port = 3307
basedir=/app/mysql
datadir=/app/mysql/data
socket=/tmp/mysql.sock
key_buffer_size=32M
max_allowed_packet=8M

[mysqldump]
quick

#将mysql的所有可执行文件加到环境变量中,可以在哪个位置都执行
[root@localhost /app/mysql/bin]# echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost /app/mysql/bin]# source /etc/profile.d/mysql.sh 

5 此时Mysql5.7.20就安装完毕了,此篇文章纯属想做一个记录,能帮到大家当然最好啦!谢谢!

猜你喜欢

转载自blog.csdn.net/kaikai0720/article/details/80822061