linux安装mysql

Linux 下安装mysql (2022.08.31)

安装mysql

https://blog.csdn.net/xhmico/article/details/125197747

  1. 下载

    • 官网 https://www.mysql.com/
    • 进入官网之后,点击DOWNLOADS
    • 进入页面后,MySQL Enterprise Edition 是商业版,下面有个 MySQL Community(GPL)Downloads 是社区版,选择社区版
    • 新页面选择右列最后一个选项Download Archives
    • 进入页面,选择第一个 MySQL community Server
    • 根据服务器配置选择,我当前安装环境CentOS 7 ,所以Operating System 选择 Red Hat Enterprise Linux / Oracle Linux,OS version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit) 选择第一个点击Download 下载
  2. 安装

    • 先创建文件夹来存放安装包

      cd /opt/module/
      mkdir mysql
      cd mysql
      
    • 通过 Xftp 将下载的安装包上传到mysql目录下

    • 在该目录下再创建一个文件夹,并将安装包解压到该文件夹中

      # 创建对应版本号的 文件夹
      mkdir mysql-8.0.28
      # 解压安装包到该目录下
      tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.28
      
    • 解压完成之后,切换到mysql-8.0.28目录下,查看解压后的文件

    • 可以看到,解压后的文件都是rpm文件,所以需要用到rpm包资源管理器相关的指令安装这些rpm安装包。

      在安装执行rpm安装包之前先下载openssl-devel插件,因为mysql里面的安装依赖于该插件

      yum install openssl-devel
      
    • 安装完该插件后,依次执行以下命令安装这些rpm包

      rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm 
      
      rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm 
      
      rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
      
      rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
      
      rpm -ivh  mysql-community-devel-8.0.26-1.el7.x86_64.rpm
      
      rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
      
      rpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm
      
      

      注意,安装rpm 包时提示 依赖检测失败,解决方案

      # 我在安装rpm包时遇到了以下两个问题
      
      # 1. 在执行rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
      # 提示错误:
      # 错误:依赖检测失败:
      #        mariadb-libs 被 mysql-community-libs-8.0.26-1.el7.x86_64 取代
      
      # 解决办法:卸载mariadb-libs
      rpm -e mariadb-libs --nodeps
      # 在重新执行该rpm命令
      rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
      
      # 2. 在执行rpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm
      # 具体错误信息忘了,大致也是依赖冲突或检测失败
      
      # 解决办法:在该命令后面加上 --nodeps
      rpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps
      
    • 启动服务

      • 在Linux中,MySQL安装好之后,系统会自动注册一个服务,服务名称是mysqld,所以可以通过以下命令操作MySQL

        # 启动MySQL服务
        systemctl start mysqld
        
        # 重启MySQL服务
        systemctl restart mysqld
        
        # 关闭MySQL服务
        systemctl stop mysqld
        
      • 这里先启动MySQL服务

        systemctl start mysqld
        
      • rpm 安装MySQL会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码

        cat /var/log/mysqld.log
        
        // 使用这条命令可以更精准的查询临时密码,因为,有时可能会是有多个临时密码(当设置忽略大小写时遇到过,有四个临时密码,是最后一个才是正确的)
        grep "A temporary password" /var/log/mysqld.log
        
        # 在显示结果的第六行,
        # [Note] [MY-010454] [server] A temporary password is generated for root@localhost: JAgc=S-:4fGC
        # 这里就是 root账号的临时密码: JAgc=S-:4fGC
        
        # 有了账号和密码,就可以连接MySQL了
        mysql -u root -p
        #然后输入临时密码
        
      • 修改root用户密码

        • 临时密码太难记忆,可以连接MySQL后进行修改密码

          ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
          -- 这里可能会提示 Your password does not satisfy the current policy requirements,意思是密码不符合规定的要求,就是密码不够长,没特殊符号,没大小写等,安全性低的意思。
          -- 这时,要么符合规范设置密码。要么修改密码的校验规则
          -- 将密码复杂度校验调整简单类型
          set global validate_password_policy = 0;
          -- 设置密码最少位数限制为 4 位
          set global validate_password_length = 4;
          
          -- 这样就可以设置简单的密码了
          

远程连接MySQL

  • windows 下 Navicat 连接虚拟机中CentOS 7 中的MySQL

    • Navicat中点击新建连接
    • 主机名为虚拟机 CentOS 7 的 IP地址,端口为3306,用户名为root,密码为root的密码
  • 测试连接时,报错

    • 先检查虚拟机的防火墙是否关闭

    • 在检查mysql服务是否启动

      1. 报错:

        https://blog.csdn.net/xu710263124/article/details/116990516

        Host '192.168.x.1' is not allowed to connect to this MySQL server 
        

        ​ 1. 报错原因:权限问题,当前主机host没有连接远程mysql数据库的权限

        ​ 2. 解决办法:修改mysql数据库中user表root用户的主机地址

        # 使用root用户登录mysql数据库
        mysql -u root -p
        
        # 登录成功后
        # 切换到mysql数据库
        use mysql;
        
        # 查询user表中root用户的主机信息
        select user, host from user;
        
        # 修改root用户的主机信息为 ‘ % ’
        update user set host='%' where user='root';
        # 再次查询,发现host信息已被修改
        select user,host from user;
        
        # 刷新权限,使操作生效
        flush privileges;
        
      2. 报错:

        1. 第一个错误解决后报的第二个错

        2. 报错 大概意思是 root 用户没有权限连接

        3. 解决办法:为root用户分配权限

          -- 虚拟机中通过 mysql -u root -p 进入数据库
          -- 修改root权限
          grant all on *.* to 'root'@'localhost';
          -- 刷新权限,使操作生效
          flush privileges;
          

Mysql8.0 设置忽略大小写

  1. 当修改在mysql8.0安装完成之后,第一次启动初始化之前

    vim /etc/my.cnf		// 编辑 my.cnf 文件
    在[mysqld]下面添加	lower_case_table_names=1
    
  2. 如果需要在mysql初始化完成之后才执行上述修改,会导致mysql无法重新启动。

    会提示类似:Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 的错误

    解决办法

    • 此解决办法将会有后果:

      会删除所有mysql数据,
      会重置mysql8.0所有配置,
      考虑好再用,记得提前备份mysql数据
      
    service mysqld stop		// 停止mysql服务
    rm -rf /var/lib/mysql 	// 删除mysql文件夹所有数据
    service mysqld start 	// 重启mysql服务
    重启后需要重新修改临时密码,重新执行 远程连接MySQL操作
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值