Linux环境下的Java项目部署技巧:安装 Mysql

查看 myslq 是否安装:
复制代码
   rpm -qa|grep mysql
  1. 如果已经安装,可执行命令来删除软件包:

    复制代码
    rpm -e --nodeps 包名
  2. 下载 repo 源:

    复制代码
     http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
  3. 执行命令安装 rpm 源(根据下载的 rpm 源进行选择)

    复制代码
    #CentOS7 安装mysql8
    rpm -ivh mysql80-community-release-el7-7.noarch.rpm
    1. 查看 mysql yum 仓库中 mysql 版本,使用如下命令

      复制代码
      yum repolist all | grep mysql
    2. 可以看到 MySQL 5.5 5.6 5.7 为禁用状态,而 Mysql 8.0 为启用状态

    3. 修改相对应的版本为启用状态最新版本为禁用状态(自行选择)

      复制代码
      yum-config-manager --disable mysql80-community
      yum-config-manager --enable mysql57-community
  4. 安装 MySQL 服务:

    复制代码
    #安装mysql服务
    yum install mysql-community-server
    #查看mysql版本
    mysql -V
  5. 启动 MySQL:

    复制代码
    #查看mysql运行状态
    systemctl status mysqld.service
    #启动mysql
    systemctl start mysqld
    #停止mysql 
    systemctl stop mysqld
    #重启mysql 
    systemctl restart mysqld  
    1. 开启 mysql 开机自启动:

      复制代码
      #开启mysql开机自启动
      systemctl enable mysqld
      #关闭mysql开机自启动
      systemctl disable mysqld
  6. 设置 mysql 密码:

    1. 获取临时密码

      复制代码
      //获取MySQL临时密码
      grep 'temporary password' /var/log/mysqld.log
    2. 登录 mysql:密码是上面获取的临时密码

      复制代码
      //登录mysql
      mysql -uroot -p
    3. 用临时密码登陆后,设置 mysql 永久密码:

      复制代码
      show variables like 'validate_password.%';
      //根据下图中的密码策略设置mysql数据库密码(你不设置密码就无法进行其它操作)                      
      alter user 'root'@'localhost' identified by 'Zjx123456#';
    4. 注意:你的密码不符合密码策略的话是无法设置成功的,mysql8 默认密码策略如下图(最少 8 位,至少包含一个数字,至少包含一个特殊字符)

  7. 修改密码策略:

    1. 只能临时修改密码策略,重启 mysql 后自动恢复默认密码策略,想要永久修改 mysql 配置文件,一般来说临时修改密码策略就够了

      复制代码
      //设置密码长度
      set global validate_password.length = 6;
      //设置密码风险等级(等级越高要求密码越复杂),分为0、1、2级
      set global validate_password.policy = 0;
       
      //查询密码策略
      show variables like 'validate_password.%';
      
      
      //设置mysql数据库密码                       (这里是密码)
      alter user 'root'@'localhost' identified by 'Zjx123456#';
  8. 许外部访问 mysql 数据库:

    复制代码
    //创建用户
           (远程连接用的账号)           (远程连接用的密码)
    create user 'root'@'%' identified by 'mypassword';
    //mysql8.0版本
    //create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#';
     
    //分配权限,运行远程连接
                             (允许root账号远程连接)
    grant all privileges on *.* to 'root'@'%' with grant option;
     
    //刷新权限
    flush privileges;
    1. 远程链接数据库,如果远程连接不上,考虑防火墙是否开放了 mysql 端口 (3306) 和服务器上的 MySQL 端口(3306)

    2. 在使用 Navicat for mysql 链接 mysql 8.0时会报如下错误:

      复制代码
      Authentication plugin 'caching_sha2_password' cannot be loaded: 
    3. mysql 8.0 引入了新特性 caching_sha2_password,这种密码加密方式客户端不支持,客户端支持的是 mysql_native_password 这种加密方式

    4. 我们可以查看 mysql 数据库中 user 表的 plugin 字段

      复制代码
      use mysql;
      select host,user,plugin from user;
    5. 可以使用命令将他修改成 mysql_native_password 加密方式:

      复制代码
      update user set plugin='mysql_native_password' where user='root';
      //或者创建user时直接指定加密模式
      create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#';
相关推荐
stormsha5 分钟前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
新加坡内哥谈技术37 分钟前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
逝水如流年轻往返染尘41 分钟前
MySQL中的内置函数
数据库·mysql
zyjyyds11343 分钟前
win11系统 Docker Desktop 突然提示Docker Engine stopped解决情况之一
运维·docker·容器
Altairr44 分钟前
Docker基础(一)
运维·docker·容器·eureka
筏.k1 小时前
grep、wc 与管道符快速上手指南
linux
咖啡啡不加糖1 小时前
深入理解MySQL死锁:从原理、案例到解决方案
java·数据库·mysql
文牧之1 小时前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
Johny_Zhao1 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
CodeOfCC1 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows