1. Linux下 MySQL 的详细安装与使用

1. Linux下 MySQL 的详细安装与使用

文章目录

  • [1. Linux下 MySQL 的详细安装与使用](#1. Linux下 MySQL 的详细安装与使用)
  • [1. Linux 下安装 MySQL8.0 的详细安装步骤:](#1. Linux 下安装 MySQL8.0 的详细安装步骤:)
  • [2. Linxu 当中的MySQL 设置远程登录](#2. Linxu 当中的MySQL 设置远程登录)
  • [3. 最后:](#3. 最后:)

1. Linux 下安装 MySQL8.0 的详细安装步骤:

  1. 查看是否安装过MySQL,如果你是用rpm安装, 检查一下RPM PACKAGE:
sh 复制代码
rpm -qa | grep -i mysql  # -i 忽略大小写
  1. 检查mysql service:
sh 复制代码
systemctl status mysqld.service

如果存在mysql-libs的旧版本包,显示如下:


如果不存在mysql-lib的版本,显示如下:

MySQL的 4 大版本:

  • MySQL Community Server 社区版本 ,开源免费,自由下载,但不提供官方技术支持,适用于 大多数普通用户。
  • MySQL Enterprise Edition 企业版本 ,需付费,不能在线下载,可以试用30天。提供了更多的 功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster 集群版 ,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个 Server。需要在社区版或企业版的基础上使用。
  • MySQL Cluster CGE 高级集群版 ,需付费。

这里我们安装的是 8.0.27 版本的 MySQL 。官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的 ER/数据库建模工具 。它是 著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是 社区版(MySQL Workbench OSS)、 商用版 (MySQL WorkbenchSE)。

下载MySQL指定版本:

官网下载地址:MySQL

  1. 打开官网,点击DOWNLOADS
  1. 然后,点击 MySQL Community(GPL) Downloads
  1. 点击 MySQL Community Server
  1. 在General Availability(GA) Releases中选择适合的版本

这里不能直接选择CentOS 7系统的版本,所以选择与之对应的 Red Hat Enterprise Linux https://downloads.mysql.com/archives/community/ 直接点Download下载RPM Bundle全量

包。包括了所有下面的组件。不需要一个一个下载了。

补充:

Linux系统下安装MySQL的几种方式

  1. 方式1:rpm命令

使用rpm命令安装扩展名为".rpm"的软件包。

.rpm包的一般格式:


2. 方式2:yum命令

需联网,从 互联网获取 的yum源,直接使用yum命令安装。

  1. 方式3:编译安装源码包

针对 tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令

Linux系统下安装MySQL,官方给出多种安装方式

  1. 下载的tar包,用压缩工具打开

解压后rpm安装包 (红框为抽取出来的安装包)

  1. CentOS7下检查MySQL依赖,检查/tmp临时目录权限(必不可少)

由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执 行:

sh 复制代码
chmod -R 777 /tmp
  1. 安装前,检查依赖
sh 复制代码
rpm -qa|grep libaio

如果存在libaio包如下:

sh 复制代码
rpm -qa|grep net-tools

如果存在net-tools包如下:

如果不存在需要到centos安装盘里进行rpm安装。安装linux如果带图形化界面,这些都是安装好 的。

  1. 将安装程序拷贝到/opt目录下

这里我们通过 XFtp 工具,将其上传到虚拟机的Linux 当中的 opt 目录当中去。

安装过程中可能的报错信息:

一个命令: yum remove mysql-libs 解决,清除之前安装过的依赖即可

sh 复制代码
yum remove mysql-libs

在mysql的安装文件目录下执行:(必须按照顺序执行)

sh 复制代码
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm

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

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

  • rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的 文件形式,易于安装。
  • -i , --install 安装软件包
  • -v , --verbose 提供更多的详细信息输出
  • -h , --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条

安装过程截图

安装过程中可能的报错信息:

一个命令: yum remove mysql-libs 解决,清除之前安装过的依赖即可

sh 复制代码
yum remove mysql-libs

9 . 查看MySQL版本

执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息

sh 复制代码
mysql --version
#或
mysqladmin --version

执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。

sh 复制代码
rpm -qa|grep -i mysql
  1. 服务的初始化

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

sh 复制代码
mysqld --initialize --user=mysql

说明: --initialize 选项默认以"安全"模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。

查看MySQL配置的临时密码:root@localhost: 后面就是初始化的密码

sh 复制代码
cat /var/log/mysqld.log
  1. 启动MySQL,查看状态
sh 复制代码
#加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service 
查看状态:systemctl status mysqld.service
sh 复制代码
[root@RainbowSea opt]# systemctl start mysqld.service
[root@RainbowSea opt]# systemctl status mysqld.service

mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个 服务器进程。

查看进程:

sh 复制代码
ps -ef | grep -i mysql

或者

sh 复制代码
[root@RainbowSea opt]# ps -aux | grep mysql
  1. 查看MySQL服务是否自启动 ,默认是enabled (就是开启自启动的)
sh 复制代码
systemctl list-unit-files|grep mysqld.service

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

sh 复制代码
systemctl enable mysqld.service

如果希望不进行自启动,运行如下命令设置

sh 复制代码
systemctl disable mysqld.service

disabled 表示开启不自启动,需要手动启动 MySQL 。

  1. MySQL登录

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

mysql 复制代码
mysql -hlocalhost -P3306 -uroot -p

初始化密码就是:

执行如下命令:所给的一个临时的初始化密码。

sh 复制代码
cat /var/log/mysqld.log
mysql 复制代码
[root@RainbowSea opt]# mysql -h127.0.0.1 -P3306 -uroot -p
  1. 修改密码

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

修改密码:

mysql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你设置的密码';

注意:

  • 5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
  • 改为更复杂的密码规则之后,设置成功,可以正常使用数据库了


MySQL的卸载:

  1. 关闭 mysql 服务
sh 复制代码
systemctl stop mysqld.service
  1. 查看当前 mysql 安装状况
sh 复制代码
rpm -qa | grep -i mysql
#或
yum list installed | grep mysql
  1. 卸载上述命令查询出的已安装程序
sh 复制代码
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留

  1. 删除 mysql 相关文件

查找相关文件

sh 复制代码
find / -name mysql

删除上述命令查找出的相关文件

sh 复制代码
rm -rf xxx

删除 my.cnf

sh 复制代码
rm -rf /etc/my.cnf

2. Linxu 当中的MySQL 设置远程登录

当前问题:

在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远 程连接引起的。

  1. 确认网络

在远程机器上使用ping ip地址 保证网络畅通

在远程机器上使用telnet命令 保证端口号开放 访问

sh 复制代码
telnet ip地址  端口号

拓展: telnet命令开启 :



sh 复制代码
telnet 192.168.76.151 3306
  1. 关闭 Linux 防火墙或开放 3306端口
  • 方式一:
sh 复制代码
systemctl start firewalld.service 
systemctl status firewalld.service   # 查看防火墙的状态
systemctl stop firewalld.service
#设置开机启用防火墙
systemctl enable firewalld.service
#设置开机禁用防火墙
systemctl disable firewalld.service
sh 复制代码
#设置开机禁用防火墙
systemctl disable firewalld.service
  • 方式二:开放端口
  • 查看开放的端口号
sh 复制代码
firewall-cmd --list-all
  • 设置开放的端口号
sh 复制代码
firewall-cmd --add-service=http --permanent 
firewall-cmd --add-port=3306/tcp --permanent
  • 重启防火墙
sh 复制代码
firewall-cmd --reload
  1. Linux下修改配置

在Linux系统MySQL下测试:

sh 复制代码
use mysql;
select Host,User from user;

可以看到root用户的当前主机配置信息为localhost。

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只 能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 % 是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为"192.168.1."的客户端都可以连 接。如果 Host=% ,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产 环境的IP进行设置。

mysql 复制代码
update user set host = '%' where user ='root';

Host设置了"%"后便可以允许远程访问。

Host修改完成后记得执行flush privileges使配置立即生效:

mysql 复制代码
flush privileges;
  1. 测试:
  • 如果是 MySQL5.7 版本,接下来就可以使用 SQLyog 或者 Navicat 成功连接至MySQL了。
  • 如果是 MySQL8 版本,连接时还会出现如下问题:

配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。

解决方法: Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:

mysql 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你MySQL的密码';

然后在重新配置SQLyog的连接,则可连接成功了,OK。

sh 复制代码
system cls;  -- 在 Windows 系统上
system clear; -- 在 Linux 或 macOS 系统上
Ctrl + L # 使用快捷键

3. 最后:

"在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。"

相关推荐
好好学习啊天天向上3 分钟前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
好奇的菜鸟1 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°1 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
典学长编程2 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9982 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
DuelCode2 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
幽络源小助理2 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
Hello.Reader3 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
简佐义的博客4 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
爬山算法4 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡