1. MySQL安装

本文以MySQL5.7的安装为例

1.1. 方式一:rpm安装

**RPM:**全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。

我们要通过rpm,进行MySQL数据库的安装。因为使用rpm安装并不能自动安装依赖,所以需要我们提前准备好mysql5.7需要的所有软件包,及下列rpm包。

mysql-community-common-5.7.25-1.el7.x86_64.rpm
mysql-community-libs-5.7.25-1.el7.x86_64.rpm
mysql-community-devel-5.7.25-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
mysql-community-client-5.7.25-1.el7.x86_64.rpm
mysql-community-server-5.7.25-1.el7.x86_64.rpm

安装的主要的步骤如下:

1.1.1. 检测是否存在冲突数据库

需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa                        # 查询当前系统中安装的所有软件
rpm -qa | grep mysql            # 查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb          # 查询当前系统中安装的名称带mariadb的软件

通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。

CentOS7自带mariadb,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。

1.1.2. 卸载冲突数据库

如果上一步中并没有冲突的数据库,则跳过这一步。

在rpm中,卸载软件的语法为:

rpm -e --nodeps  软件名称

那么,我们就可以通过指令,卸载 mariadb,具体指令为:

rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64

image-20210815002649784

我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。

1.1.3. 上传rpm包

  1. 将安装需要的所有rpm包打包后,使用FTP工具将其上传至linux的一个临时目录

  2. 解压到一个目录(本例中放在/usr/local/mysql)

执行如下指令:

# 创建目录
mkdir /usr/local/mysql
# 解压
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

1.1.4. 安装

切换到解压目录下后,请务必按照下面的顺序一一安装rpm包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

说明:

  • 因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
  • 安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证联网)
  • 可以通过指令(yum update)升级现有软件及系统内核

image-20210815004608198

执行如下命令,判断是否安装成功

mysql -V

1.2. 方式二:yum安装

1.2.1. 检查是否存在冲突数据库并卸载

同上文1.1.1.1.1.2.。请务必确认没有冲突数据库

1.2.2. 更新MySQL5.7的yum源

执行以下命令以更新MySQL5.7对应的yum源。

rpm -Uvh  https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

如果需要安装其他版本的MySQL,则访问官方网址 https://dev.mysql.com/downloads/repo/yum/ 下载和系统版本对应的yum源,并使用rpm安装。

rpm安装后,官方源默认安装8.0,还需要手动修改yum源文件切换版本

具体操作请参考 -> mysql 添加yum源

1.2.3. 安装MySQL

执行如下命令,安装MySQL

yum -y install mysql-community-server

执行如下命令,判断是否安装成功

mysql -V

2. MySQL启动

MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。

systemctl status mysqld     # 查看mysql服务状态
systemctl start mysqld      # 启动mysql服务
systemctl stop mysqld       # 停止mysql服务
systemctl enable mysqld     # 开机自启动mysql服务

说明:

​ 可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令:

​ systemctl enable mysqld

我们可以通过如下两种方式,来判定mysql是否启动:

netstat -tunlp                  # 查看已经启动的服务
netstat -tunlp | grep mysql      # 查看mysql的服务信息
ps -ef | grep mysql             # 查看mysql进程 (自己输入)

image-20210815010410996

备注:

A. netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

​ 参数说明:

​ -l或--listening:显示监控中的服务器的Socket;
​ -n或--numeric:直接使用ip地址,而不通过域名服务器;
​ -p或--programs:显示正在使用Socket的程序识别码和程序名称;
​ -t或--tcp:显示TCP传输协议的连线状况;
​ -u或--udp:显示UDP传输协议的连线状况;

B. ps命令用于查看Linux中的进程数据。

3. MySQL登录

3.1. 查阅临时密码

MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢?

那实际上,对于rpm和yum安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。

可以配合管道符执行如下指令:

cat /var/log/mysqld.log | grep password

image-20210815011938287

3.2. 登录MySQL

修改默认密码

获取到root用户的临时密码之后,我们就可以登录mysql数据库,修改root的密码,为root设置一个新的密码。

我们还需要开启root用户远程访问该数据库的权限,这样的话,我们就可以在其他地方来访问这台MySQL数据库。

注:为便于开发,下文中我们将密码也设为root。请不要在生产环境随意降低密码的复杂度,以及使用弱密码

执行如下指令:

# 1.登录mysql(复制日志中的临时密码登录)
mysql -uroot -p                             

# 2.修改密码
# 设置密码长度最低位数
set global validate_password_length=4;  
# 设置密码安全等级低,便于密码可以修改成root
set global validate_password_policy=LOW;    
# 设置密码为root
set password = password('root');              

# 3.开启访问权限
grant all on *.* to 'root'@'%' identified by 'root';
flush privileges;

操作完上述的指令之后,数据库root用户的密码以及远程访问我们就配置好了,接下来,可以执行exit退出mysql,再次通过新的密码进行登录。

image-20210815012902871

当然我们也可以使用安装在windows系统中的sqlyog或者Navicat来远程连接linux上的MySQL。

image-20210815013909486

开放防火墙端口

要想在windows上能够访问MySQL,还需要开放防火墙的3306端口,执行如下指令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

image-20210815014120709

如人饮水,冷暖自知。
最后更新于 2023-08-20