CentOS 7 安装 MySQL 5.7

一、下载地址

官网下载地址:http://dev.mysql.com/downloads/mysql/

image-20201210155659997

二、拷贝&解压缩

注意: 我自己本人使用版本是 mysql 5.7.16 但是目前官网上的 GA 版 mysql 是 5.7.32 版,两个版本安装都一样,版本选择根据自己来决定。这里以5.7.16版为演示

image-20201210155829125

三、检查工作

1、检查当前系统是否安装过 mysql

1
rpm -qa|grep mariadb

==如果存在如下:==

image-20201210160241455

请执行以下卸载命令:

1
rpm -e --nodeps  mariadb-libs

2、检查当前 mysql 依赖环境

==执行安装命令前,先执行查询命令==

1
rpm -qa|grep libaio

如果存在 libaio 包如下:

image-20201210160512951

如果不存在请参考博客目录: 十一、Bug 有解决方案

==在执行命令:==

1
rpm -qa|grep net-tools

如果存在 net-tools 包如下:

image-20201210160652142

如果不存在需要到 centos 安装盘里进行 rpm 安装

三、安装

1、通过 Xftp 工具把在下载好文件发送到 Linux 的 opt 目录下

image-20201210161051656

2、在 mysql 的安装目录下执行:==(必须按照顺序执行)==

1
2
3
4
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

image-20201210161930157

==注意:==如在检查工作时,没有检查 mysql 依赖环境在安装 mysql-community-server 会报错

四、查看 MySQL 安装版本

执行以下命令:

1
mysqladmin --version

image-20201210162159199

五、MySQL 服务的初始化

为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

1
mysqld --initialize --user=mysql

注意:另外 –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码。

查看密码:

1
cat /var/log/mysqld.log

image-20201210162500890

==root@localhost: 后面就是初始化的密码==

六、MySQL 服务的启与停

启动systemctl start mysqld.service

image-20201210162831231

关闭:systemctl stop mysqld.service

image-20201210162921994

七、首次登陆

首次登陆通过 mysql -uroot -p进行登录,在 Enter password:录入初始化密码

image-20201210163133832

因为初始化密码默认是过期的,所以查看数据库会报错

image-20201210163258630

修改密码:

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

image-20201210163353276

设置完密码就可以用新密码登陆,正常使用数据库了 !!!

八、自启动 mysql 服务

查看 mysql 是否自启动(默认自启动)

1
systemctl list-unit-files|grep mysqld.service

image-20201210163934384

==注意:==如不是 enabled 可以运行如下命令设置自启动

1
systemctl enable mysqld.sercice

九、修改字符集问题

问题:mysql5.7 直接插入中文数据报错。

可以使用以下方法解决问题

  1. 修改配置文件
1
vim  /etc/my.cnf

在最后加上中文字符集配置: character_set_server=utf8

image-20201210164315928

  1. 重新启动 mysql
1
systemctl restart mysqld

==扩展:==已生成的库表字符集如何变更

  1. 修改数据库的字符集
1
mysql> alter database mydb character set 'utf8';
  1. 修改数据表的字符集
1
mysql> alter table mytbl convert to  character set 'utf8';

到此,Linux 上的 MySQL 数据库就安装完成了

十、远程工具连接 MySQL 数据库

授予权限

先使用 mysql -uroot -p 进入数据库:

1
grant all privileges on *.* to root@'%'  identified by 'password';

image-20201210165252685

授予通过网络方式登录的的 root 用户 ,对所有库所有表的全部权限,密码设为 6090.

远程连接

  1. 先 ping 一下数据库服务器的 ip 地址确认网络畅通。
  2. 关闭数据库服务的防火墙

补充:==(根据自己情况来选择)==

1
2
3
4
5
6
7
8
9
10
11
// 查看当前防火墙状态如果防火墙处于开启状态,firewalld.service前面的点是高亮的,Active:active(开启))
systemctl status firewalld.service

//关闭当前的防火墙(仅对本次开机有效,重启后防火墙会再次启用)
systemctl stop firewalld.service

//永久关闭防火墙(重启后防火墙依然关闭)
systemctl disable firewalld.service

// 启动防火墙
systemctl start firewalld

演示使用命令

1
systemctl stop firewalld.service
  1. 使用 Navicat 连接

image-20201210170055182

连接成功:

如果使用的是云服务(阿里云、腾讯云等)记得去安全组里面配置规则,开放 3306 端口。

image-20201210170124458

十一、Bug

使用阿里云服务器安装时,缺少 libaio 依赖

  • 执行 rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 报错
1
2
3
4
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64

Snipaste_2021-02-02_14-53-52

原因分析:缺少依赖

解决方式:

1
2
# 执行以下,就可以解决
yum install libaio

参考:http://www.blogjava.net/amigoxie/archive/2013/02/22/395605.html

==如果对你有帮助的话,请给我点个赞,写作不易,谢谢!!!!==