Centos8.5安装mysql8.0

news2024/11/23 17:06:58

1.检查是否有安装mysql数据库(如果有mysql或者mariadb数据库,则卸载)

[root@myhost ~]# rpm -qa |grep mysql
[root@myhost ~]# rpm -qa | grep mariadb
[root@myhost ~]# ll /etc/my.cnf 
ls: 无法访问'/etc/my.cnf': No such file or directory
#如果有mysql或者mariadb数据库,则卸载
[root@myhost ~]# yum -y  remove `rpm -qa | grep mysql` 或者  yum -y  remove `rpm -qa | grep mariadb`  
[root@myhost ~]# ll  /etc/my.cnf
ls: 无法访问'/etc/my.cnf': No such file or directory
[root@myhost ~]# rpm -qa |grep mysql 或者 rpm -qa | grep mariadb

2.下载并安装mysql官方的 yum repository

[root@myhost ~]# cd /home/tools/
[root@myhost tools]# wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
[root@myhost tools]# ll
总用量 28
-rw-r--r--. 1 root root 25820 418 2018 mysql80-community-release-el7-4.noarch.rpm

3.rpm安装生成所需要的repo文件

[root@myhost tools]# ll /etc/yum.repos.d/
总用量 20
-rw-r--r--. 1 root root  941 1110 10:55 almalinux-ha.repo
-rw-r--r--. 1 root root  883 1110 10:55 almalinux-plus.repo
-rw-r--r--. 1 root root  961 1110 10:55 almalinux-powertools.repo
-rw-r--r--. 1 root root 2660 1110 10:55 almalinux.repo
-rw-r--r--. 1 root root 1022 1110 10:55 almalinux-resilientstorage.repo

[root@myhost tools]# rpm -ivh mysql80-community-release-el7-4.noarch.rpm
#执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件: mysql-community.repo 和 mysql-community-source.repo

[root@myhost tools]# ll /etc/yum.repos.d/                               
总用量 28
-rw-r--r--. 1 root root  941 1110 10:55 almalinux-ha.repo
-rw-r--r--. 1 root root  883 1110 10:55 almalinux-plus.repo
-rw-r--r--. 1 root root  961 1110 10:55 almalinux-powertools.repo
-rw-r--r--. 1 root root 2660 1110 10:55 almalinux.repo
-rw-r--r--. 1 root root 1022 1110 10:55 almalinux-resilientstorage.repo
-rw-r--r--. 1 root root 1864 222 2018 mysql-community.repo   ###新生成的repo文件###
-rw-r--r--. 1 root root 1885 222 2018 mysql-community-source.repo    ###新生成的repo文件###

4.正式安装mysql服务器

[root@myhost tools]# yum install -y mysql-server

[root@myhost tools]#  rpm -qa |grep mysql
mysql-8.0.26-1.module_el8.4.0+2532+b8928c02.x86_64
mysql-common-8.0.26-1.module_el8.4.0+2532+b8928c02.x86_64
mysql-server-8.0.26-1.module_el8.4.0+2532+b8928c02.x86_64
mysql80-community-release-el7-1.noarch
mysql-errmsg-8.0.26-1.module_el8.4.0+2532+b8928c02.x86_64

至此,mysql服务器安装完毕!!!

5.查看mysql 8.0 数据库主配置文件

[root@myhost tools]# ll /etc/my.cnf
-rw-r--r--. 1 root root 202 123 2020 /etc/my.cnf
[root@myhost tools]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d   ##这里引入MySQL 8.0 数据库各个详细配置文件##

[root@myhost tools]# ll /etc/my.cnf.d
总用量 12
-rw-r--r--. 1 root root 295 123 2020 client.cnf
-rw-r--r--. 1 root root 565 824 2021 mysql-default-authentication-plugin.cnf
-rw-r--r--. 1 root root 612 924 2021 mysql-server.cnf

服务端配置文件

[root@myhost tools]# cat /etc/my.cnf.d/mysql-server.cnf
#
# This group are read by MySQL server.
# Use it for options that only the server (but not clients) should see
#
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/en/server-configuration-defaults.html

# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
#关闭ssl
ssl=0

6.启动mysql

### 启动mysql
[root@myhost tools]# systemctl start mysqld.service 

### 查看MySQL运行状态
[root@myhost tools]# systemctl status mysqld.service     
● mysqld.service - MySQL 8.0 database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-05-05 03:07:44 EDT; 10s ago
  Process: 53994 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 53862 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
  Process: 53837 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 53947 (mysqld)
   Status: "Server is operational"
    Tasks: 38 (limit: 23508)
   Memory: 460.1M
   CGroup: /system.slice/mysqld.service
           └─53947 /usr/libexec/mysqld --basedir=/usr

5月 05 03:07:35 myhost systemd[1]: Starting MySQL 8.0 database server...
5月 05 03:07:35 myhost mysql-prepare-db-dir[53862]: Initializing MySQL database
5月 05 03:07:44 myhost systemd[1]: Started MySQL 8.0 database server.

### 将MySQL加入开机自启动
[root@myhost tools]# systemctl enable mysqld.service           
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.

7.查看mysql的初始登录密码

当MySQL开始正常运行时,要想进入MySQL还得先找出此时root用户的密码,root用户的密码可以在MySQL日志文件中找出,前面安装MySQL时,服务端配置文件里面显示了MySQL的日志文件所在路径:log-error=/var/log/mysql/mysqld.log

[root@myhost tools]#  egrep -v "^#|^$"  /etc/my.cnf.d/mysql-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid

[root@myhost tools]# grep "password" /var/log/mysql/mysqld.log
2022-05-05T07:07:39.174205Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

根据日志中显示,此次安装mysql时没有设置root用户密码(即可以使用空密码进行登录)

8.登录mysql数据库

[root@myhost tools]# 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.26 Source distribution

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> 
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.26    |
+-----------+
1 row in set (0.00 sec)

mysql> 

此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库。

9.为root用户设置新密码

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,user from mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

mysql> alter user 'root'@'localhost' identified with by '新密码';
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 'by  'yuki12#$'' at line 1
mysql> set password=password('新密码');  
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 'password('yuki12#$')' at line 1
mysql> set authentication_string=password('新密码');  ### mysql的版本不一样,用户密码字段表示也不一样,这一点需要注意。
ERROR 1193 (HY000): Unknown system variable 'authentication_string'; 
mysql> 

上面修改root账户密码失败,原因在于在MySQL 8.02前,修改mysql的root账户密码可以直接使用:

set password=password('新密码');  
set authentication_string=password('新密码');  
alter user 'root'@'localhost' identified with by '新密码';

但MySQL8.0开始以后,这样默认是不行的。因为之前版本的mysql,使用的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”,但是我们修改密码必须使用的认证插件是“mysql_native_password”,所以MySQL8.0之后的版本在修改密码时要在sql语句中申明修改密码认证插件。

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.26    |
+-----------+
1 row in set (0.00 sec)

mysql> alter user 'root'@'localhost' identified with mysql_native_password by  '新密码';
Query OK, 0 rows affected (0.01 sec)

至此,成功修改root密码!!!

mysql> select host, user, password, plugin from user;                      
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | *1326652C75900CFF0EF7EF997D4D178B173CE182                              | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)


host:允许用户登录在哪个ip可以远程登录,%表示任意ip都可以远程登录mysql数据库;
user:当前数据库的用户名;
authentication_string:用户密码,在mysql 5.7.9以后废弃了password字段和password()函数;
plugin:密码加密方式;
我们看host和user两列,host和user中root对应的值为localhost,即root用户的访问权限为localhost,想把该用户的访问权限设置可远程连接,我们只需要把localhost更改为通配的%就可以了。上面的权限操作语句没有走通,这里就直接使用update语句来更改吧。

mysql> update user set host = "%" where user = "root";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | root             | *1326652C75900CFF0EF7EF997D4D178B173CE182                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
4 rows in set (0.00 sec)

10.使用Navicat工具远程登录数据库(防火墙开启mysql端口的情况下)

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9a7040154e4641d4bf37ac25a3d35ad2.png
以上报错原因在于我们在安装的mysql8.0.26数据库时没有在配置文件中设置密码认证方式,此版本mysql默认的密码加密方式是:caching_sha2_password,而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就会报错。解决办法如下:

[root@myhost ~]# vi /etc/my.cnf.d/mysql-server.cnf 

#添加如下配置:default_authentication_plugin=mysql_native_password

[root@myhost ~]# systemctl restart mysqld.service    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 单词大师(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

敬酒词大全绝对实用 万能敬酒词

举杯共饮,友情初识;再续一杯,情深似海,朋友相伴人生路更宽。酒逢知己千杯少,一饮而尽显真意,浅尝则留情,深情则尽欢。友情到深处,千杯不倒,若情浅则饮少,醉卧…

正则表达式常用表示

视频教程:10分钟快速掌握正则表达式 正则表达式在线测试工具(亲测好用):测试工具 正则表达式常用表示 限定符 a*:a出现0次或多次a:a出现1次或多次a?:a出现0次或1次a{6}:a出现6次a…

第二十二篇——香农第二定律(一):为什么你的网页总是打不开?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 看似在将知识,实际是在讲生活和所有;突破边界偶尔…

澳汰尔(Altair)3D 打印部件设计仿真——打造高效的增材制造设计

借助 Inspire Print3D,可加速创新、结构高效的 3D 打印部件的创建、优化和研究,提供快速准确的工具集,可用于实现选择性激光熔融 (SLM) 部件的设计和过程仿真。 工程师可以快速了解影响可制造性的工艺或设计变更,然后将部件和支撑…

Java网络爬虫入门

文章目录 1、导入依赖2、CrawlerFirst 1、导入依赖 <dependencies><!-- HttpClient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 智能成绩表(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

高等数学笔记(二):极限

一、数列极限的定义 以下符号表示 “对于任意给定的” 以下符号表示 “存在” 以下符号表示 “如果什么&#xff08;箭头左&#xff09;&#xff0c;则什么&#xff08;箭头右&#xff09;” 二、收敛数列的性质 2.1 唯一性 2.2 有界性 2.3 保号性 2.4 子数列收敛性 三、函数…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第43课-玩家形象优化-使用导入的3D模型文件

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第43课-玩家形象优化-使用导入的3D模型文件 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScri…

计算机丢失MSVCP140.dll的一键修复方案,快速解决dll问题

电脑已经成为我们生活中不可或缺的一部分。然而&#xff0c;在使用电脑的过程中&#xff0c;有时会遇到一些错误提示&#xff0c;其中之一就是“丢失msvcp140.dll”。那么&#xff0c;这个错误提示到底是怎么回事呢&#xff1f;小编将从多个方面进行详细描述&#xff0c;帮助大…

实验室装修公司教你在实验室装修设计中要注意哪些细节

实验室装修设计是一项高度专业化的工作&#xff0c;涉及到空间布局、材料选择、家具配置、施工质量和验收标准等多个方面。一个成功的实验室装修项目&#xff0c;不仅要满足实验操作的需求&#xff0c;还要确保人员的安全和舒适。以下是广州实验室装修公司小编分享的在实验室装…

设计模式-结构型-06-桥接模式

1、传统方式解决手机操作问题 现在对不同手机类型的不同品牌实现操作编程&#xff08;比如&#xff1a;开机、关机、上网&#xff0c;打电话等&#xff09;&#xff0c;如图&#xff1a; UML 类图 问题分析 扩展性问题&#xff08;类爆炸&#xff09;&#xff1a;如果我们再…

银行数仓项目实战(三)--使用Kettle进行增量,全量抽取

文章目录 使用Kettle进行全量抽取使用Kettle进行增量抽取 使用Kettle进行全量抽取 一般只有项目初始化的时候会使用到全量抽取&#xff0c;全量抽取的效率慢&#xff0c;抽取的数据量大。 我们在第一次进行全量抽取的时候&#xff0c;要在表中新建一个字段记录抽取时间&#x…

CLIP: Learning Transferable Visual Models From Natural Language Supervision

1、引言 论文链接&#xff1a;ReadPaper 现在最先进的计算机视觉系统都是训练模型来预测一组固定的、预定义好的目标类别&#xff08;如 ImageNet 的 1000 类和 COCO 的 80 类&#xff09;。这种受限制的监督形式限制了它们的通用性和可用性&#xff0c;因为需要额外的标记数据…

【第18章】Vue实战篇之登录界面

文章目录 前言一、数据绑定1. 数据绑定2. 数据清空 二、表单校验1. 代码2. 展示 三、登录1.登录按钮2.user.js3. login 四、展示总结 前言 上一章完成用户注册&#xff0c;这一章主要做用户登录。 一、数据绑定 登录和注册使用相同的数据绑定 1. 数据绑定 <!-- 登录表单 -…

Unity制作透明材质直接方法——6.15山大软院项目实训

之前没有在unity里面接触过材质的问题&#xff0c;一般都是在maya或这是其他建模软件里面直接得到编辑好材质的模型&#xff0c;然后将他导入Unity里面&#xff0c;然后现在碰到了需要自己在Unity制作透明材质的情况&#xff0c;所以先搜索了一下有没有现成的方法&#xff0c;很…

ECharts 词云图案例二:创意蒙版应用

ECharts 词云图案例二&#xff1a;创意蒙版应用 引言 在数据可视化领域&#xff0c;ECharts 以其强大的功能性和灵活性&#xff0c;成为开发者和设计师的首选工具之一。继上一篇关于 ECharts 词云图的详细介绍后&#xff0c;本文将探索词云图的进阶应用——使用蒙版来创造更具…

VS+QT+OCC创建坐标界面

1、安装并配置好项目后&#xff0c;填写如下代码&#xff1a; #pragma once#include <Standard_Handle.hxx> #include <V3d_Viewer.hxx> #include <OpenGl_GraphicDriver.hxx> #include <WNT_Window.hxx> #include <V3d_View.hxx> #include <…

C++ 72 之 友元和类模版

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <string>// 写法2&#xff1a; // template<class T1, class T2> // class Students12;// 要提前用到Students12&#xff0c;需要在前面先让编译器见过Students12才可…

【C语言】回调函数 和 部分库函数的用法以及模拟实现

一、回调函数&#xff1a; 1、定义&#xff1a; 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这是回调函数。 2、qsort的模拟实现…