首页 > 数据库 >Centos8/linux下载、安装、配置、连接MySQL5.7(rpm方式)

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

时间:2023-07-25 11:45:31浏览次数:38  
标签:服务 -- MySQL5.7 linux community systemctl mysqld mysql rpm

目录

问题现象:

问题分析:

解决方法:

下载:

安装:

配置:

连接:

拓展

 


问题现象:

        今天在使用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

标签:服务,--,MySQL5.7,linux,community,systemctl,mysqld,mysql,rpm
From: https://www.cnblogs.com/qianzf/p/17579419.html

相关文章

  • Linux下的I2C驱动
    1.Linux中I2C需要编写的驱动......
  • linux 路由网关问题
       关于linux的默认网关默认网关是一个用于TCP/IP协议的配置项,是一个可直接到达的IP路由器的IP地址。配置默认网关可以在IP路由表中创建一个默认路径。一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个......
  • Linux必备技能-vim编辑器深入讲解(9)
    vim编辑器我们说过vim是文本编辑器,什么是文本编辑器呢?简单来讲我们从名字上就能知道它能实现编辑文本的,但这里我们要强调一个概念文本,这里的文本指的是纯文本信息。所谓纯文本站在ASCII的角度来讲,它指的是必须是纯粹的不加任何修饰的文本信息。比如我们此前都接触过的字处理工......
  • Linux驱动:I2C驱动
    一、前言I2C协议是在开发中使用非常频繁的一种协议,相信大家在学习单片机的时候经常会用到支持I2C协议的模块,I2C总线仅仅使用SCL、SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、......
  • linux I2C驱动
    1.linuxIIC驱动由于裸机的驱动迎合驱动的分离和分层的思想,分为IIC主机驱动(接口驱动)和IIC设备驱动.这种思想的好处,请看我写的另外一篇文章Linux驱动的分离和分层。其中上面说的裸机驱动请看这篇文章裸机驱动但是裸机的驱动是没有加入操作系统的本文也是遵循Linux驱动的分离和......
  • 4 STM32MP1 Linux系统启动过程
    1.ROM代码  这是ST官方写的代码,在STM32MP1出厂时就已经烧录进去,不能被修改。ROM代码是上电以后首先执行的程序,它的主要工作就是读取STM32MP1的BOOT引脚电平,然后根据电平来判断当前启动设备,最后从选定的启动设备里面读取FSBL代码,将FSBL代码放在对应的RAM空间。  STM32MP1启......
  • 一分钟学一个 Linux 命令 - rm
    前言大家好,我是god23bin,欢迎回到咱们的《一分钟学一个Linux命令》系列,今天我要讲的是一个比较危险的命令,rm命令,没错,你可以没听过rm命令,但是删库跑路你不可能没听过吧?什么?没听过,没事,现在你就听过了,我刚刚已经讲了,哈哈哈。好了,废话不多说,现在开始吧!什么是rm?rm是单词rem......
  • linux 中 grep命令精准匹配制表符
     001、[root@PC1test02]#lsa.txt[root@PC1test02]#cata.txt##测试数据321971225792194632197622553381184532197222609449473219872253144109......
  • Linux那些查看或统计网卡流量的几种方式
    iftop是类似于top的实时流量监控工具,主要用来显示本机网络流量情况以及各个相互通信的流量集合,可以用来监控网卡的实时流量。 iftop的输出从整体上可以分为三大部分:iftop输出中最上面的一行,此行信息是流量刻度,用于显示网卡带宽流量。iftop输出中最大的一个部分,此部分又分......
  • 适用于Android手机的Debian GNU/Linux和Windows兼容环境
    Github地址:https://github.com/jinshulumengchuang/Debian-Wine-Android食用方法:从github下载release安装得到的apk文件把tarball放在内部存储的根目录给termux存储权限打开termux输入:cd..;tarxvf/sdcard/rootfs.tar.xz回车等候指令执行完成.($符号重新出现)......