1,安装前的准备
检查是否已经自带安装了mysql或mariadb数据库,执行下面这两个命令
rpm -qa | grep mysql
rpm -qa | grep mariadb
我的运行结果如下
可见我的系统是已经有mariadb安装的软件包,这时候需要它卸载,不然后面的安装会冲突报错。
执行rpm -e --nodeps 软件包名
命令进行卸载,所以我执行的命令就是下面这个
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
再次运行检查命令这个mariadb就不见了,说明卸载成功
运行下面这个命令查看mysql文件目录
find / -name mysql
我的运行结果如下
运行下面命令删除
rm -rf /usr/lib64/mysql/
rm -rf /etc/selinux/targeted/active/modules/100/mysql/
2,查看系统版本和下载mysql安装包
执行下面命令可以查看当前的系统版本
lsb_release -a
运行结果如下
明显就是Centos了,知道的话不查也可以。
然后,执行下面命令查看当前系统是32位还是64位
uname -a
如果有x86_64就是64位的,没有就是32位的。后面是X686或X86_64则内核是64位的,i686或i386则内核是32位的。
我的运行结果如下,可见是一个64位的系统
接着,到Mysql官网下载对应的安装包
官网地址:https://dev.mysql.com/downloads/mysql/
选择Red Hat Linux(CentOS基于RHL),选择对应OS版本的
然后,在下面选择RPM Bundle,点击Download进行下载
点击Download之后跳转的页面,选择下面这个开始下载
下载完成之后,通过xftp软件将安装包上传到Linux服务器中,找个位置放好
我上传到了 /software/mysql 目录下,如下
3,解压安装包
进入到刚刚放安装包的目录下
cd /software/mysql/
解压刚刚的安装包
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
解压后文件如下
4,开始安装
可以使用prefix参数修改rpm的安装路径。
下面这条命令是例子,不用真正执行
rpm -ivh –prefix=/software/mysql5.7 mysql-community-common-5.7.30-1.el7.x86_64.rpm
我没有修改安装路径,所以执行的命令都没有带prefix参数,默认安装路径如下
数据文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql
mysql客户端工具目录:/usr/bin
日志目录:/var/log/
pid,sock文件目内录:/tmp/
一般配置文件会放容置在/etc下
现在开始安装:
(4.1)依次执行下面命令安装common、libs和client,注意顺序不能改变
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
(4.2)安装libaio
检查当前系统是否安装了 libaio
rpm -qa | grep libaio
如果执行上面这个命令之后是空的,说明没有安装,需要安装一下。如果有了就跳到(4.3)继续
若Linux服务器有网情况下,执行下面这个命令就可以安装好(中途有一次询问,输入y就可以),然后就可以到(4.3)继续
yum install libaio
若Linux服务器不能上网,下载离线包通过xftp上传进linux服务器,然后安装
下载地址:http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
上传之后执行这个命令安装
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
(4.3)执行下面命令安装server
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
5,初始化配置
执行以下命令
mysqld --initialize
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service
systemctl enable mysqld
其中systemctl enable mysqld是设置开机自启动的意思
6,修改数据库密码
先通过下面这个命令查看数据库原始的随机生成的密码
cat /var/log/mysqld.log | grep password
运行如下(原来那个冒号也是密码的一部分,我红框没框好):
使用下面命令登陆数据库
mysql -uroot -p
然后输入刚刚查看到的密码,输入完敲回车就能看到已经进入到mysql控制台,如下
接着输入下面代码来修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123@'
注意:mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位
输入命令按回车之后,再输入一个;然后按回车,运行结果如下
7,设置可远程访问
create user 'root'@'%' identified with mysql_native_password by 'Root123@';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
或者直接使用下面这条语句,效果一样
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123@' WITH GRANT OPTION;
执行结果如下
完成之后输入quit
敲回车退出Mysql控制台
8,测试远程连接
因为服务器是在阿里云上面,所以记得要先去阿里云的控制台中的安全组配置规则,打开入方向的3306端口,如下
使用Navicat连接试一下,打开Navicat,点击连接输入信息后点击连接测试,显示连接成功。
接着点击确定就能保存下这个连接,以后直接打开就可以,如下
到这里已经成功连上数据库,安装也就结束了。之前的安装包可以删除了。
如果不是在阿里云,而是虚拟机里面的Linux服务器,如果连接不了尝试关闭防火墙试试
9,防火墙设置
使用下面这个命令修改Linux中防火墙的配置信息
(或者用xftp找到这个文件右击以记事本方式打开来修改内容也可以)
vim /etc/sysconfig/iptables
执行这个命令之后按 i ,进入到编辑模式。
然后在下面这个位置输入如下内容(3306那一条):
输入完之后按ESC,然后按 shift + :,接着输入wq敲回车。
接着,输入下面这个命令重启一下防火墙
service iptables restart
现在再去连接测试一下看看,可以连接成功就说明可以了。
如果不行试一下下面这个命令,关掉防火墙
systemctl stop firewalld