小工具知识网

当前位置: 首页 > 行业知识 > 05-Linux部署MySQL

行业知识

05-Linux部署MySQL

2026-11-03 13:45:52 来源:互联网转载

Linux部署MySQL

在今后���使用过程中,需要频繁使用Linux系统,所以在Linux上安装软是必不可少的操作 。

前置要求

  1. 需要学习前四章知识,初识Linux、Linux基础命令、Linux权限管理、Linux高阶技巧这4个章节。
  2. 需要开启多态虚拟机,电脑内存要大于8G,或者可以选择使用阿里云等云服务器。

MySQL的安装部署

MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。

MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。

从MySQL开始,进行实战的Linux软件安装部署。

下面将介绍2个版本进行安装:

  • MySQL 5.7版本安装
  • MySQL 8.x版本安装

    MySQL5.7版本在CentOS系统安装

    注意:安装操作需要root权限

    MySQL的安装可以通过前面学习的yum命令进行。

    安装

    • 配置yum仓库
      # 更新密钥rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql yum库rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
      • 使用yum安装MySQL
        # yum安装Mysqlyum -y install mysql-community-server
        • 安装完成后,启动MySQL并配置开机自启动
          systemctl start mysqld# 启动systemctl enable mysqld# 开机自启

          MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

          • 检查MySQL的运行状态
            systemctl status mysqld

            配置

            配置管理员用户root的密码以及配置允许远程登录的权限

            • 获取MySQL的初始密码
              # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码grep 'temporary password' /var/log/mysqld.log
              • 登录MySQL
                # 执行mysql -uroot -p# 解释# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root# -p,表示使用密码登陆# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
                • 修改root用户密码
                  # 在MySQL控制台内执行ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
                  • 配置root的简单密码

                    我们可以给root设置简单密码,如123456.

                    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

                    # 如果你想设置简单密码,需要降低Mysql的密码安全级别set global validate_password_policy=LOW; # 密码安全级别低set global validate_password_length=4; # 密码长度最低4位即可# 然后就可以用简单密码了(在学习中使用简单密码,为了方便,生产中不要这样)ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
                    • 配置root远程登录

                      默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

                      请注意,允许root远程登录会带来安全风险

                      # 授权root远程登录grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;  # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同# 刷新权限,生效flush privileges;
                      • 退出MySQL控制台页面
                        # 退出命令exit# 或者通过快捷键退出:ctrl + d
                        • 检查端口

                          MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

                          netstat -anp | grep 3306

                          至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

                          使用Navicat连接centOS7.9中的MySQL5.7

                          • 开启防火墙
                            systemctl start firewalld
                            • 显示防火墙状态
                              systemctl status firewalld
                              • 打开防火墙的3306端口(--permanent永久生效)
                                firewall-cmd --zone=public --add-port=3306/tcp --permanent
                                • 重启防火墙
                                  service firewalld restart
                                  • 使用Navicat连接centOS中的MySQL5.7

                                    MySQL8.0版本在CentOS系统安装

                                    注意:安装操作需要root权限

                                    安装

                                    • 配置yum仓库(这里的2023要紧跟实时)
                                      # 更新密钥rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023# 安装Mysql8.x版本 yum库rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
                                      • 使用yum安装MySQL
                                        # yum安装Mysqlyum -y install mysql-community-server
                                        • 安装完成后,启动MySQL并配置开机自启动
                                          systemctl start mysqld# 启动systemctl enable mysqld# 开机自启

                                          MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

                                          • 查看MySQL的运行状态
                                            systemctl status mysqld

                                            配置

                                            主要修改root密码和允许root远程登录

                                            • 获取MySQL的初始密码
                                              # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码grep 'temporary password' /var/log/mysqld.log
                                              • 登录MySQL数据库系统
                                                # 执行mysql -uroot -p# 解释# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root# -p,表示使用密码登陆# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
                                                • 修改root密码
                                                  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
                                                  • 配置root的简单密码

                                                    我们可以给root设置简单密码,如123456.

                                                    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

                                                    set global validate_password.policy=0;# 密码安全级别低set global validate_password.length=4;# 密码长度最低4位即可
                                                    • 允许root远程登录,并设置远程登录密码

                                                      默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

                                                      请注意,允许root远程登录会带来安全风险

                                                      # 第一次设置root远程登录,并配置远程密码使用如下SQL命令create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc# 后续修改密码使用如下SQL命令ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
                                                      • 退出MySQL控制台页面
                                                        # 退出命令exit# 或者通过快捷键退出:ctrl + d
                                                        • 检查端口

                                                          MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

                                                          netstat -anp | grep 3306

                                                          至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

                                                          使用Navicat连接centOS7.9中的MySQL8.0

                                                          • 开启防火墙
                                                            systemctl start firewalld
                                                            • 显示防火墙状态
                                                              systemctl status firewalld
                                                              • 打开防火墙的3306端口(--permanent永久生效)
                                                                firewall-cmd --zone=public --add-port=3306/tcp --permanent
                                                                • 重启防火墙
                                                                  service firewalld restart
                                                                  • 使用Navicat连接centOS中的MySQL8.0
                                                                    • 查看MySQL版本
                                                                      mysql> status;--------------mysql  Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)Connection id:12Current database:Current user:root@localhostSSL:Not in useCurrent pager:stdoutUsing outfile:''Using delimiter:;Server version:8.0.36 MySQL Community Server - GPLProtocol version:10Connection:Localhost via UNIX socketServer characterset:utf8mb4Db     characterset:utf8mb4Client characterset:utf8mb4Conn.  characterset:utf8mb4UNIX socket:/var/lib/mysql/mysql.sockBinary data as:HexadecimalUptime:18 min 0 secThreads: 3  Questions: 21  Slow queries: 0  Opens: 179  Flush tables: 3  Open tables: 95  Queries per second avg: 0.019--------------mysql> 

                                                                      可以看到这个MySQL的版本号是8.0.36

                                                                      使用Xshell连接Ubuntu系统

                                                                      Ubuntu系统的配置

                                                                      • 提升root权限
                                                                        sudo su -#输入密码
                                                                        • 安装net-tools
                                                                          sudo apt install net-tools
                                                                          • 查看IP地址
                                                                            ifconfig
                                                                            • 查看22号端口
                                                                              netstat -ntlp|grep 22
                                                                              • 安装spenssh-server
                                                                                apt-get install openssh-server
                                                                                • 启动ufw防火墙
                                                                                  ufw enable
                                                                                  • 允许通过TCP协议在22端口上的传入连接
                                                                                    ufw allow 22/tcp

                                                                                    使用Xshell连接Ubuntu系统

                                                                                    • 填写IP
                                                                                      • 填写用户密码
                                                                                        • 在Xshell上登录成功

                                                                                          MySQL5.7版本在Ubuntu(可使用WSL环境)系统安装

                                                                                          课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本

                                                                                          所以我们需要额外的步骤才可以安装5.7版本的MySQL

                                                                                          安装操作需root权限,你可以:

                                                                                          1. 通过 sudo su -,切换到root用户

                                                                                            课程中选择这种方式操作

                                                                                          2. 或在每一个命令前,加上sudo,用来临时提升权限

                                                                                          安装

                                                                                          • 下载apt仓库文件
                                                                                            # 下载apt仓库的安装包,Ubuntu的安装包是.deb文件wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
                                                                                            • 配置apt仓库
                                                                                              # 使用dpkg命令安装仓库dpkg -i mysql-apt-config_0.8.12-1_all.deb

                                                                                              弹出框中选择:ubuntu bionic (Ubuntu18.04系统的代号是bionic,选择18.04的版本库用来安装)

                                                                                              弹出框中选择:MySQL Server & Cluster

                                                                                              弹出框中选择:mysql-5.7

                                                                                              最后选择ok

                                                                                              • 更新apt仓库的信息
                                                                                                # 首先导入仓库的密钥信息apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29# 更新仓库信息apt update
                                                                                                • 检查是否成功配置MySQL5.7的仓库
                                                                                                  apt-cache policy mysql-server

                                                                                                  发现没有5.7版本的MySQL,并有以下报错

                                                                                                  W: GPG error: http://repo.mysql.com/apt/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785CE: The repository 'http://repo.mysql.com/apt/ubuntu bionic InRelease' is not signed.N: Updating from such a repository can't be done securely, and is therefore disabled by default.N: See apt-secure(8) manpage for repository creation and user configuration details.

                                                                                                  该报错说明APT无法验证仓库的 GPG 签名,因为它缺少必要的公钥,可以执行以下命令

                                                                                                  #加入公钥apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C#更新aptapt update#查看是否配置MySQL5.7仓库apt-cache policy mysql-server
                                                                                                  • 安装MySQL5.7
                                                                                                    # 使用apt安装mysql客户端和mysql服务端apt install -f -y mysql-client=5.7* mysql-community-server=5.7*

                                                                                                    加载安装

                                                                                                    进入安装界面

                                                                                                    输入密码,123456,然后选择ok

                                                                                                    再次输入密码,然后选择ok

                                                                                                    • 启动MySQL5.7
                                                                                                      /etc/init.d/mysql start# 启动/etc/init.d/mysql stop# 停止/etc/init.d/mysql status# 查看状态
                                                                                                      • 对MySQL5.7进行初始化
                                                                                                        # 执行如下命令,此命令是MySQL安装后自带的配置程序mysql_secure_installation# 可以通过which命令查看到这个自带程序所在的位置root@DESKTOP-Q89USRE:~# which mysql_secure_installation/usr/bin/mysql_secure_installation
                                                                                                        1. 输入密码

                                                                                                        2. 是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)

                                                                                                        3. 是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)

                                                                                                        4. 是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)

                                                                                                        5. 是否进制root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)

                                                                                                        6. 是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)

                                                                                                        7. 是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)

                                                                                                        8. 登录MySQL5.7

                                                                                                          mysql -u root -p

                                                                                                        至此,在Ubuntu上安装MySQL5.7版本成功。

                                                                                                        使用Navicat连接Ubuntu中的MySQL5.7

                                                                                                        • 配置MySQL的文件,需要用到vim操作,先安装vim命令
                                                                                                          apt install vim
                                                                                                          • 编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件
                                                                                                            vim /etc/mysql/mysql.conf.d/mysqld.cnf

                                                                                                            注释掉 bind-address = 127.0.0.1

                                                                                                             # bind-address  = 127.0.0.1

                                                                                                            添加3306端口

                                                                                                            port = 3306

                                                                                                            最后按ESC输入:wq保存并退出

                                                                                                            • 重启MySQL5.7
                                                                                                              #停用MySQLservice mysql stop#启动MySQLservice mysql start#设置MySQL开机自启动systemctl enable mysql
                                                                                                              • 进入MySQL配置远程登录密码
                                                                                                                # 授权root远程登录grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;  # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同# 刷新权限,生效flush privileges;
                                                                                                                • 配置防火墙,开放3306防火墙端口
                                                                                                                  #安装防火墙软件apt install firewalld
                                                                                                                  • 开放3306端口
                                                                                                                    firewall-cmd --zone=public --add-port=3306/tcp --permanent
                                                                                                                    • 重启防火墙
                                                                                                                      firewall-cmd --reload
                                                                                                                      • 查询防火墙是否允许通过3306端口
                                                                                                                        firewall-cmd --query-port=3306/tcp
                                                                                                                        • 使用Navicat连接Ubuntu中的MySQL5.7

                                                                                                                          MySQL8.0版本在Ubuntu(可使用WSL环境)系统安装

                                                                                                                          课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本

                                                                                                                          所以直接可以通过apt安装即可

                                                                                                                          注意,课程是以WSL获得的Ubuntu操作系统环境。

                                                                                                                          如果你通过VMware虚拟机的方式获得了Ubuntu操作系统环境,操作步骤不用担心,和课程中使用WSL环境是完全一致的

                                                                                                                          安装操作需root权限,你可以:

                                                                                                                          1. 通过 sudo su -,切换到root用户

                                                                                                                            课程中选择这种方式操作

                                                                                                                          2. 或在每一个命令前,加上sudo,用来临时提升权限

                                                                                                                          安装

                                                                                                                          • 如果已经安装过MySQL5.7版本,需要卸载仓库信息哦
                                                                                                                            # 卸载MySQL5.7版本apt remove -y mysql-client=5.7* mysql-community-server=5.7*# 卸载5.7的仓库信息dpkg -l | grep mysql | awk '{print }' | xargs dpkg -P
                                                                                                                            • 更新apt仓库信息
                                                                                                                              apt update
                                                                                                                              • 安装MySQL
                                                                                                                                apt install -y mysql-server
                                                                                                                                • 启动MySQL
                                                                                                                                  /etc/init.d/mysql start# 启动/etc/init.d/mysql stop# 停止/etc/init.d/mysql status# 查看状态
                                                                                                                                  • 登录MySQL8.0,设置密码
                                                                                                                                    # 直接执行:mysqlmysql
                                                                                                                                    • 设置密码
                                                                                                                                      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
                                                                                                                                      • 退出MySQL控制台
                                                                                                                                        exit
                                                                                                                                        • 初始化MySQL8.0
                                                                                                                                          # 执行如下命令,此命令是MySQL安装后自带的配置程序mysql_secure_installation# 可以通过which命令查看到这个自带程序所在的位置root@DESKTOP-Q89USRE:~# which mysql_secure_installation/usr/bin/mysql_secure_installation
                                                                                                                                          • 输入密码
                                                                                                                                            • 是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)
                                                                                                                                              • 是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)
                                                                                                                                                • 是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)
                                                                                                                                                  • 是否进制root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)
                                                                                                                                                    • 是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)
                                                                                                                                                      • 是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)
                                                                                                                                                        • 重新登陆MySQL(用更改后的密码)
                                                                                                                                                          mysql -u root -p

                                                                                                                                                          至此,在Ubuntu上安装MySQL8.0版本成功。

                                                                                                                                                          使用Navicat连接Ubuntu中的MySQL8.0

                                                                                                                                                          • 配置MySQL的文件,需要用到vim操作,先安装vim命令
                                                                                                                                                            apt install vim
                                                                                                                                                            • 编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件
                                                                                                                                                              vim /etc/mysql/mysql.conf.d/mysqld.cnf

                                                                                                                                                              注释掉 bind-address = 127.0.0.1

                                                                                                                                                               # bind-address  = 127.0.0.1

                                                                                                                                                              添加3306端口

                                                                                                                                                              port = 3306

                                                                                                                                                              最后按ESC输入:wq保存并退出

                                                                                                                                                              • 重启MySQL5.7
                                                                                                                                                                #停用MySQLservice mysql stop#启动MySQLservice mysql start#设置MySQL开机自启动systemctl enable mysql
                                                                                                                                                                • 进入MySQL配置远程登录密码

                                                                                                                                                                  在MySQL 5.7.6及以后的版本中,CREATE USER和GRANT语句是分开的

                                                                                                                                                                  CREATE USER 'root'@'%';ALTER USER 'root'@'%' IDENTIFIED BY '654321';#授予该用户所有数据库的所有权限,并允许该用户授予其他用户权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;#刷新权限FLUSH PRIVILEGES;#退出exit;
                                                                                                                                                                  • 配置防火墙,开放3306防火墙端口
                                                                                                                                                                    #安装防火墙软件apt install firewalld
                                                                                                                                                                    • 开放3306端口
                                                                                                                                                                      firewall-cmd --zone=public --add-port=3306/tcp --permanent
                                                                                                                                                                      • 重启防火墙
                                                                                                                                                                        firewall-cmd --reload
                                                                                                                                                                        • 查询防火墙是否允许通过3306端口
                                                                                                                                                                          firewall-cmd --query-port=3306/tcp
                                                                                                                                                                          • 使用Navicat连接Ubuntu中的MySQL8.0

                                                                                                                                                                            注意

                                                                                                                                                                            在正式的生产环境中,一定要使用强密码配置MySQL的登录,以及Linux的登录,MySQL远程登录最好是固定一个公网IP,阿里云服务器中专用的安全组策略来设置,同时要定期备份数据库。否则你的数据库会像如下一样,被劫持。

                                                                                                                                                                            在使用Ubuntu系统安装MySQL时,使用虚拟机创建的Ubuntu与上述WSL环境一样

                                                                                                                                                                            WSL环境是指Windows自带的Linux系统环境

上一篇:网易mc服务器怎么建?

下一篇:宝塔面板文件夹权限设置攻略,一步步教你如何开启文件夹权限