Centos8/linux下载、安装、配置、连接MySQL5.7(rpm方式)

news/2024/12/5 4:49:33/

目录

问题现象:

问题分析:

解决方法:

下载:

安装:

配置:

连接:

拓展


问题现象:

        今天在使用Centos8 安装MySQL5.7的rpm包时,出现如下报错:

        仓库 "MySQL 5.7 Community Server" 的 GPG 公钥已安装,但是不适用于此软件包。

        最终问题解决了,但还是把Centos8/linux下载、安装、配置、启动、连接MySQL(rpm方式)的整个步骤总结一下,希望对小伙伴们有所帮助。


问题分析:

1、首先是使用wget命令,下载mysql服务的rpm包【这里以经典的mysql5.7版本为例】:

        wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

        至此mysql服务的下载就完成了。

2、然后是本地安装localhostinstall命令:

        yum localinstall mysql57-community-release-el7-8.noarch.rpm

3、安装后查询:

        yum repolist enabled | grep "mysql.*-community.*"

 4、然后启动 mysql服务失败:

        systemctl start mysqld

5、然后上网看了是需要安装mysql-community-server:

         yum install mysql-community-server

 6、不成功,网上资料说要先禁用mysql模块:

        sudo yum module disable mysql

7、然后再次安装mysql-community-server:

         sudo yum -y install mysql-community-server

8、出现gpg公钥报错【仓库 “MySQL 5.7 Community Server“ 的 GPG 公钥已安装,但是不适用于此软件包】:

9、查询资料,发现要先修改公钥url:

        rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

10、再次安装mysql-community-server成功: 

        sudo yum -y install mysql-community-server

  11、启动mysql服务成功:

        systemctl start mysqld

12、查看mysql服务状态:

        systemctl status mysqld

        至此mysql服务的安装就完成了。mysql服务可以正常启动。

13、查看mysql日志,获取root用户的初始密码:

        grep 'temporary password' /var/log/mysqld.log

 14、登录账号,并修改账号密码(这里我修改为123456):

        mysql -uroot -p

        输入上一步中获取的初始密码,登录后修改密码:

        ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

        报错:密码不符合当前策略【要带字母、数字、符号】。这是因为安装的mysql中,自带了密码校验插件;要解决这个问题,就需要关闭该插件。步骤如下:

15、先查找文件my.cnf所在路径:
        find / -name 'my.cnf'


16、关闭密码校验插件,有以下2种方案供参考:
    16.1、在文件my.cnf末尾添加关闭密码校验的配置(这里我选择这种方案):
        validate-password=OFF

        保存退出。
    16.2、如果想卸载自带的密码校验插件,也可以执行:
        uninstall plugin validate_password;
17、重启mysql服务
        systemctl restart mysqld
18、再次修改账号密码
        ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

19、不过有些公司或项目规定是不允许操作和使用root账户的,因此这里我再提一下如何创建用户和授权:

        19.1 创建用户:

        create user '用户名'@'ip地址' identified by '密码';  

        19.2 全授权:

        grant all privileges on *.* to '用户名'@'ip地址';

         19.3 :刷新权限:

        flush privileges; 

        19.4、这里再提供一种创建用户并全授权的sql:

        GRANT ALL PRIVILEGES ON *.* TO '用户名'@'ip地址' IDENTIFIED BY '密码' WITH GRANT OPTION;

        19.5、如果只想授权部分功能(如:INSERT、UPDATE、DELETE、SELECT、CREATE、EXECUTE):

        GRANT INSERT,UPDATE,DELETE,SELECT,CREATE,EXECUTE ON *.* to '用户名'@'ip地址';

# 查看当前已有用户信息
select User,authentication_string,Host from user;#查看用户权限信息
SHOW GRANTS FOR '用户名'@'ip地址';

        如果权限配置完,没有生效的话,建议重启一下mysql服务:

        systemctl restart mysqld

        至此mysql服务的配置就完成了。mysql服务可以正常使用,但还不能被外部连接访问。

20、查看mysql服务的端口:

        ps -ef|grep mysqld

        netstat -nap|grep mysqld服务的进程号

        可以看到mysql服务使用的是3306端口。

21、查看防火墙状态:

        sudo firewall-cmd --state

22、如果防火墙在运行中,那就需要查看3306端口是否被开放:

        sudo firewall-cmd --query-port=3306/tcp

23、如果3306端口未开放,则需要开放该端口并重启防火墙:

        sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent 

        sudo firewall-cmd --reload

24、外界使用Navicat或dbeaver等数据库工具来连接服务器上的mysql数据库:

         至此mysql的连接就完成了。


解决方法:

下载:

1、首先是使用wget命令,下载rpm包:

        wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装:

2、然后是本地安装localhostinstall命令:

        yum localinstall mysql57-community-release-el7-8.noarch.rpm

3、安装后查询:

        yum repolist enabled | grep "mysql.*-community.*"

 4、禁用mysql模块:

        sudo yum module disable mysql

5、修改公钥url:

        rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

6、安装mysql-community-server: 

        sudo yum -y install mysql-community-server

7、启动mysql服务成功:

        systemctl start mysqld

8、查看mysql服务状态:

        systemctl status mysqld

配置:

9、查找文件my.cnf所在路径:
        find / -name 'my.cnf'

10、在文件my.cnf末尾添加关闭密码校验的配置,保存退出:
        validate-password=OFF

11、重启mysql服务
        systemctl restart mysqld

12、根据mysqld.log文件查看初始密码:

        grep 'temporary password' /var/log/mysqld.log

 13、登录账号,并修改账号密码(这里我修改为123456):

        mysql -uroot -p

        输入上一步中获取的初始密码,登录。

14、修改密码:

        GRANT ALL PRIVILEGES ON *.* TO '用户名'@'ip地址' IDENTIFIED BY '密码' WITH GRANT OPTION;

15、退出mysql并重启mysql服务

        exit

        systemctl restart mysqld

16、查看mysql服务的端口:

        ps -ef|grep mysqld

        netstat -nap|grep mysqld服务的进程号

17、查看防火墙状态:

        sudo firewall-cmd --state

18、如果防火墙在运行中,那就需要查看mysql服务端口是否被开放:

        sudo firewall-cmd --query-port=mysql服务端口号/tcp

19、如果mysql服务端口未开放,则需要开放该端口并重启防火墙:

        sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent 

        sudo firewall-cmd --reload

连接:

20、外界使用Navicat或dbeaver等数据库工具来连接服务器上的mysql数据库:

        如果不知道服务器ip,可以先查看ip,然后外界和服务器之间ping一下,保证网络能互通:

        ifconfig

        这里我就直接在外界ping服务器了,保证网络能互通,拿数据库连接基本就不会有问题:


拓展:

        这里再提一下mysql服务的一些基础命令:

# 开机启动服务
systemctl enable mysqld
systemctl daemon-reload#启动服务
systemctl start mysqld# 重新启动服务
systemctl restart mysqld# 查看服务当前状态
systemctl status mysqld#停止服务
systemctl stop mysqld# 永久性停止服务
systemctl disable mysqld

http://www.ppmy.cn/news/9701.html

相关文章

批处理 for 命令爬过的坑之在 Windows 命令行下显示目录大小

批处理 for 命令爬过的坑之在 Windows 命令行下显示目录大小引子一、入坑二、延迟扩展作者:高玉涵 时间:2023-1-5 17:08 环境:Windows 10 专业工作站版 22H2 引子 今天同事向我问了一个问题:在 Windows 命令行下显示目录大小。…

Spring——最全Spring目录

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

JavaEE高阶---Spring AOP

一:什么是Spring AOP? 首先,AOP是一种思想,它是对某一类事情的集中处理。 如用户登录权限的效验,没学 AOP 之前,我们所有需要判断用户登录的页面,都要各自实现或调用验证的方法。然后有了 AOP …

【LeetCode面试TOP100】力扣打卡第一天!

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【LeetCode面试TOP100】 ✈️✈️本篇内容:力扣Top100——第1,2题! 🚀🚀代码存放仓库gitee:力扣面试Top100题&…

12.动态内存

文章目录动态内存12.1动态内存和智能指针12.1.1shared_ptr类make_shared函数shared_ptr的拷贝和赋值shared_ptr自动销毁所管理的对象shared_ptr还自动释放相关联的内存使用了动态生存期的资源的类12.1.2直接管理内存使用new动态分配和初始化对象动态分配的const对象内存耗尽指针…

java基础 定时器

方式一:Timer TimerTask类实际上是实现了Runnable。 Timer定时器的特点和存在的问题: 1、Timer是单线程,处理多个任务按照顺序执行,存在延时与设置定时器的时间有出入。 2、由于单线程特性,一旦其中的某个任务抛出异…

(02)Cartographer源码无死角解析-(46) 2D栅格地图→CastRay()函数与贝汉明(Bresenham)算法

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…

分享136个PHP源码,总有一款适合您

PHP源码 分享136个PHP源码,总有一款适合您 136个PHP源码下载链接:https://pan.baidu.com/s/1A5sR357dh_SlS7pu33lW1Q?pwdkzgn 提取码:kzgn import os# 查找指定文件夹下所有相同名称的文件 def search_file(dirPath, fileName):dirs os…