centos7 安装mysql8

1. 前提条件

  1. 查看是否安装了mysql服务(有则自行卸载删除)
yum list installed mysql*
rpm –qa|grep mysql*

2. 两种安装方式:

2.1 第一种安装方式

通过官网下载tar压缩包或rpm安装包来安装,

  • 确定服务器的基础框架是arm架构还是x86架构

uname -m
image

  • 确定出你需要的系统版本

以我的为例,是CentOS 7系统。(CentOS 版本是基于Red Hat 版本开发的)

cat /etc/redhat-release
image

  • 到mysql官网下载对应的安装包,如下图所示

下载地址: https://dev.mysql.com/downloads/mysql/
image

  • 通过WinSCP、XFTP上传等工具上传服务器并解压,或通过wget直接下载

    • 创建jdk安装路径 :mkdir /usr/local/mysql
    • 上传压缩包到任意路径,解压: tar -zxvf 安装包 -C 指定目录
    • 然后得到若干rpm包
  • 删除原有的mariadb,否则可能会报异常

    • 先查看一下是否已经安装了: rpm -qa|grep mariadb
      image
    • 删除mariadb : rpm -e --nodeps mariadb-libs
  • 安装rmp包

逐个安装,命令如下:

  • 必须安装
rpm -ivh mysql-community-common-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el8.x86_64.rpm
  • 非必须安装
rpm -ivh mysql-community-libs-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-test-8.0.26-1.el8.x86_64.rpm

2.2 第二种安装方式(推荐)

通过yum的方式安装(推荐)

  • 查看服务器上是否有现成的安装包: yum list mysql*

  • mysql官网的yum资源库找到对应的rpm文件的下载链接

    • 确定系统版本 : cat /etc/redhat-release
    • 复制对应的资源下载链接
      image
      image
  • 在linux中下载、安装yum资源 :

如:rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh 资源下载链接

  • 查看当前mysql的当前版本 yum info mysql-community-server
    image
  • 安装mysql: yum -y install mysql-community-server
    image

3. 安装完后,启动mysql

  • 使用“systemctl”检测mysqld服务状态: systemctl status mysqld
  • 启动mysql服务: systemctl start mysqld
  • 再次查看mysqld服务的状态: systemctl status mysqld
  • 设置系统启动时自动启动mysql服务: systemctl enable --now mysqld

4. 修改mysql密码

  • 查看mysql root的原始密码: less /var/log/mysqld.log
    image
  • 修改密码:mysqladmin -u root -p password

这里需要粘贴上面的原始密码,然后输入新密码,最后回车时会报错,提示设置的密码太简单
image

  • 先通过原始密码进入到mysal: mysql -uroot -p

回车后,粘贴原始密码进入的msyql shell界面

  • 在mysql shell界面修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
# 这里会遇到一个问题,新密码设置过于简单会报错,不重置密码的话,这里任何mysql命令都无法执行,我们可以先重置复杂密码后,再次修改密码策略,再次设置简单密码

image

这里会遇到一个问题,新密码设置过于简单会报错,不重置密码的话,这里任何mysql命令都无法执行,我们可以先重置复杂密码后,再次修改密码策略,再次设置简单密码

  • 可通过如下命令查看完整的初始密码规则

    • mysql 8 查看初始密码规则并修改规则:

      • mysql8 使用如下命令查看初始密码规则: mysql> SHOW VARIABLES LIKE 'validate_password%';
        image

      • 查看密码强度等级: mysql> show variables like 'validate_password.policy';

      • 查看密码等级:mysql> show variables like 'validate_password.length';
        image

      • 修改指定密码的验证强度等级: set global validate_password.policy=LOW;

      • 修改指定密码长度: set global validate_password.length=6;

      image

    • mysql7 使用如下命令查看初始密码规则:

      • mysql7 使用如下命令查看初始密码规则mysql> show variables like 'validate_password';
      • 修改密码策略
          mysql> set global validate_password_policy=0;
          mysql> set global validate_password_length=1;
        
  • 再次修改密码为简单密码就可以了: mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '112233';
    image

4. 重新创建账户使其可以外部连接

root账号一般只添加了localhost访问(这是推荐的),如若调试阶段不想通过ssh跳板连接,建议开个新账号。

  • 查看root账号的ip访问权限(执行结果:localhost和127.0.0.1,是无法从外部连接的)
SELECT host FROM mysql.user WHERE User = 'root';
  • 新建账号并指定密码和ip(使用 % 通配符表示允许任何ip访问)
CREATE USER 'my_name'@'%' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON *.* TO 'my_name'@'%';
  • 刷新配置: FLUSH PRIVILEGES;

这样my_name就可以不通过ssh跳板直接连接了。

posted @ 2023-05-21 22:53  Halo3224  阅读(1434)  评论(0编辑  收藏  举报
热爱技术的小牛