Centos7下使用RPM包安装MySQL8

【1】MySQL版本与rpm下载

https://dev.mysql.com/downloads/ 界面可以看到MySQL的不同版本。
在这里插入图片描述

通常我们选择的都是MySQL Community Server

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

此外,官方还提供了MySQL Workbench(GUITOOL)一款专为MySQL设计得ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分表是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。

如下所示,可以选择操作系统以及操作系统版本。如果当前GA版本不是想要的,可以点击右侧Archives选择其他GA版本。

在这里插入图片描述
以mysql-8.0.32-1.el7.x86_64.rpm-bundle为例,其中mysql-8.0.32为版本,1 为发布次数即1次,el7.x86_64为操作系统版本。这里我们下载该离线版RPM包。

这里我们下载mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar,(mysql-8.0.32-1.el7.x86_64.rpm-bundle资源没有下载下载从其他途径得到了8.0.25)得到的rpm包解压后如下所示:
在这里插入图片描述

我们只需要抽取如下五个进行安装即可。如果是MySQL5.7则不需要mysql-community-client-plugins-xxxx

mysql-community-client-8.0.25-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
mysql-community-common-8.0.25-1.el7.x86_64.rpm
mysql-community-libs-8.0.25-1.el7.x86_64.rpm
mysql-community-server-8.0.25-1.el7.x86_64.rpm

【2】 检查/tmp临时目录权限与依赖

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

chmod -R 777 /tmp

安装前,检查依赖libaio

rpm -qa |grep libaio

如果存在则如下所示,如果不存在则通过yum命令进行安装。

[root@localhost ~]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64

检查依赖net-tools

[root@localhost ~]# rpm -qa |grep net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64

其实正常安装Centos,这些工具都是安装好的。

【3】rpm安装MySQL

将上面我们抽取的5个rpm包上传到/opt/softinstall/mysql路径下,然后执行命令安装。需要注意的是,安装必须按照顺序执行:

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

rpm是Redhat Package Manager的缩写,通过rpm的管理,用户可以把源代码包装成以rpm为扩展名的文件形式,易于安装。

安装mysql-community-libs-8.0.25-1.el7.x86_64.rpm可能遇到如下错误:

[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
warning: mysql-community-libs-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
        mariadb-libs is obsoleted by mysql-community-libs-8.0.25-1.el7.x86_64

意思是mariadb-libs被mysql-community-libs-8.0.2.5-1.el7.x86_64淘汰,通过如下命令我们可以检测到已经安装过mariadb-libs。

root@localhost mysql]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64

那么我们可以通过如下命令进行依赖解决,之后再检测就没有了mariadb-libs。继续执行rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm 即可。

yum remove mysql-libs

【4】MySQL安装后的检测与使用

① 查看MySQL版本

执行如下命令,如果成功表示安装MySQL成功。

mysql --version
#或
mysqladmin --version

[root@localhost mysql]# mysql --version
mysql  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
[root@localhost mysql]# mysqladmin --version
mysqladmin  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)

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

rpm -qa|grep -i mysql

[root@localhost mysql]# rpm -qa|grep -i mysql
mysql-community-server-8.0.25-1.el7.x86_64
mysql-community-client-plugins-8.0.25-1.el7.x86_64
mysql-community-libs-8.0.25-1.el7.x86_64
mysql-community-client-8.0.25-1.el7.x86_64
mysql-community-common-8.0.25-1.el7.x86_64

此时查看mysqld服务状态:

[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html

② 服务的初始化

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

mysqld --initialize --user=mysql

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

查看密码:

[root@localhost mysql]# mysqld --initialize --user=mysql
[root@localhost mysql]# cat /var/log/mysqld.log
2023-01-27T11:00:23.961580Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.25) initializing of server in progres                                                                                                               s as process 52362
2023-01-27T11:00:24.041419Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-27T11:00:26.819414Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-27T11:00:32.697960Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: l.o(;/!=E3S*

即临时密码为:l.o(;/!=E3S*

③ 启动mysql服务

#启动服务
[root@localhost mysql]# systemctl start mysqld
#查看状态
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-01-27 03:04:06 PST; 6s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 52458 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 52487 (mysqld)
   Status: "Server is operational"
    Tasks: 38
   CGroup: /system.slice/mysqld.service
           └─52487 /usr/sbin/mysqld

Jan 27 03:03:33 localhost.localdomain systemd[1]: Starting MySQL Server...
Jan 27 03:04:06 localhost.localdomain systemd[1]: Started MySQL Server.

在这里插入图片描述

其他关于服务命令:

# 启动服务
systemctl start mysqld
# 查看服务状态
systemctl status mysqld
# 重启服务
systemctl restart mysqld
# 停止服务
systemctl stop mysqld

④ 查看mysql服务是否自启动

[root@localhost mysql]# systemctl list-unit-files|grep mysqld.service
mysqld.service                                enabled

默认是enabled,如果不是enabled可以运行如下命令设置自启动:

systemctl enable mysqld.service

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

systemctl disable mysqld.service

⑤ 登录并修改密码

如下所示使用上面得到的临时密码进行登录,但是再进行进一步操作时会提示要求修改密码。

[root@localhost mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.25

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
No connection. Trying to reconnect...
Connection id:    9
Current database: *** NONE ***

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密码:

alter user `root`@localhost identified by '123456';

⑥ 添加远程登录用户

在MySQL8下执行如下命令会报错:

grant all privileges on *.* to 'root'@'%' identified by '123456!' with grant option;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456' with grant option' at line 1

可以采用如下方式:

# 创建用户并设置密码
create user 'root'@'%' identified by '123456';

#赋予权限
 grant all on *.* to 'root'@'%' with grant option;
 
#刷新MySQL的系统权限相关表
flush privileges;

⑦ Navicat远程连接

注意保证网络、端口畅通哦(建议关闭防火墙或者放开默认的3306端口)。在使用Navicat远程连接是还会遇到如下一个问题(MySQL5.7下没有):
加粗样式

解决方法:Linux下登录MySQL然后执行如下SQL即可。

alter user 'root' @'%' identified with mysql_native_password by '123456';
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值