• Centos下载安装连接MySQL8


    一、下载

    链接:https://dev.mysql.com/downloads/mysql/
    在这里插入图片描述
    点击 Download,如下图:
    在这里插入图片描述
    没有登录,点击 “No thanks,just start my downlaod.” 即可下载

    二、安装

    2.1 将下载的mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz上传到服务器,并解压为tar。

    在这里插入图片描述

    2.2 解压mysql-8.0.34-linux-glibc2.28-x86_64.tar 到 目录 /opt下面

    解压命令:tar -xvf mysql-8.0.34-linux-glibc2.28-x86_64.tar -C /opt

    重命名:mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql8

    如下图,
    在这里插入图片描述

    2.3 进入mysql解压后的目录mysql8,并创建存放mysql日志的目录

    cd /opt/mysql8/

    mkdir data
    在这里插入图片描述

    2.4 配置mysql环境变量

    MYSQL_HOME=/opt/mysql8/bin

    PATH= P A T H : PATH: PATH:MYSQL_HOME

    export MYSQL_HOME PATH

    如下图:
    在这里插入图片描述
    配置完成后重载:

    source /etc/profile
    在这里插入图片描述

    2.5 创建mysql用户组和mysql用户

    groupadd mysql
    useradd -g mysql mysql

    如下图:
    在这里插入图片描述

    2.6 关联myql用户到mysql用户组中

    进入到mysql8所在目录,此例中为/opt/
    在这里插入图片描述

    2.7 更改mysql安装文件夹mysql的权限

    [root@localhost module]# chmod -R 755 mysql8
    在这里插入图片描述

    2.8 安装libaio依赖包

    查询是否安装libaio依赖包

    yum search libaio
    在这里插入图片描述
    如果没安装,可以用下面命令安装:

    yum install libaio
    在这里插入图片描述

    2.9 初始化mysql命令

    mysqld --user=mysql --basedir=/opt/mysql8 --datadir=/opt/mysql8/data --initialize
    在这里插入图片描述
    红色箭头指向的是mysql数据库登录的临时密码,保存备用,每个人安装生成的临时密码不一样。

    2.10 启动mysql服务

    sh /opt/mysql8/support-files/mysql.server start

    上面启动mysql服务命令是会报错的,因为没有修改mysql的配置文件,报错内容大致如下:
    在这里插入图片描述

    2.11 修改Mysql配置文件

    vim /opt/mysql8/support-files/mysql.server

    修改以下属性:

    basedir=/opt/mysql8
    datadir=/opt/mysql8/data

    mysqld_pid_file_path=/opt/mysql8/data/mysqld_pid

    如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接下来,复制进程文件
    cp /opt/mysql8/support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    在这里插入图片描述
    将mysql服务加到系统服务中
    chkconfig --add mysqld
    在这里插入图片描述
    开机自启动
    chkconfig mysqld on
    在这里插入图片描述

    2.12 修改my.cnf文件

    这里下载的mysql8.0.23版本并没有这个my.cnf文件,因此直接创建的。

    vim /etc/my.cnf
    在这里插入图片描述
    在这里插入图片描述

    [client]
    port=3306
    socket=/tmp/mysql.sock
    
    [mysqld]
    basedir=/opt/mysql8
    datadir=/opt/mysql8/data
    socket=/tmp/mysql.sock
    user=mysql
    port=3306
    character_set_server=utf8
    # symbolic-links=0
    # bind-address=0.0.0.0
    
    
    [mysqld_safe]
    log-error=/opt/mysql8/data/error.log
    pid-file=/opt/mysql8/data/mysqld.pid
    tmpdir=/tmp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    然后,授权文件my.cnf

    [root@localhost etc]# chown mysql:mysql /etc/my.cnf

    [root@localhost etc]# chown mysql /etc/my.cnf

    [root@localhost etc]# chmod 755 /etc/my.cnf

    再次启动mysql服务成功,如下图:
    在这里插入图片描述

    2.13 启动服务

    查看服务:service mysqld status

    停止服务:service mysqld stop

    启动服务:service mysqld start

    如下图:
    在这里插入图片描述

    2.14 登录mysql

    mysql -uroot -p

    在这里插入图片描述

    如果出现如下错误:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
    解决办法:yum install libncurses* 完美解决!
    在这里插入图片描述
    在这里插入图片描述

    2.15 修改初始化用的临时密码(一定要修改,不然会出如下错误)

    use mysql

    报错如下:
    在这里插入图片描述
    解决办法:

    修改初始密码: alter user ‘root’@‘localhost’ identified by ‘root’;
    在这里插入图片描述
    刷新:flush privileges;
    在这里插入图片描述
    至此,完成mysql8.0.23的安装。

    三、连接Navicat

    在这里插入图片描述
    首先检查是否ping得通,其次再检查如下原因:

    原因一:由于mysql 没有开启对外访问权限

    原因二:由于防火墙没有对外开放mysql的默认端口3306导致

    原因三:由于阿里云或者是腾讯云的安全组规则没有开放3306端口

    3.1、通过netstat查看3306的端口状态是怎么样的?是否绑定了本地回旋地址?

    netstat -apn | grep 3306
    在这里插入图片描述
    如果MySQL的默认bind-address(监听IP地址)为127.0.0.1,即只能为本机提供服务,禁止远程连接。则只需要如下解决:

    [mysqld]
    bind-address = 0.0.0.0
    我这里的原因是防火墙没有放行。

    3.2、yum安装iptables

    yum -y install iptables-services
    在这里插入图片描述
    需要一点时间,耐心等待

    3.3、启动

    systemctl start iptables
    在这里插入图片描述

    3.4、配置(此步骤可以配置放行3306端口,在测试环境中可以直接关闭防火墙)

    vim /etc/sysconfig/iptables(可以不配置)
    在这里插入图片描述

    然后再重启Linux,

    四、使用Navicat连接

    进行Navicat Premium连接,提示一下错误:
    在这里插入图片描述
    原因分析:

    其实是mysql8.0版更换了新的身份验证是(caching_sha2_password)之前身份验证是(mysql_native_password),Navicat,和SQLyog客户端软件其实是不支持新的身份验证,也就是说新的身份验证找不到(caching_sha2_password),既然知道了是这个问题,那么我们就把登录密码加密规则改回(mysql_native_password)即可。

    第一步:登录MySQL

    mysql -uroot -p

    第二步:设置用户访问范围

    如下图:
    问题:
    在这里插入图片描述
    处理办法
    在这里插入图片描述

    第三步:修改加密规则

    alter user ‘root’@‘%’ identified by ‘password’ password expire never;

    第四步:更新用户密码

    alter user ‘root’@‘%’ identified with mysql_native_password by ‘password’;

    第五部:刷新权限

    flush privileges;

    第六步:重置密码

    alter user ‘root’@‘%’ identified by ‘root’;
    在这里插入图片描述

    再次重新连接,成功!

    在这里插入图片描述

    五、连接云服务器的防火墙配置

    如果连接云服务器提示无法连接服务,考虑是否是防火墙没有对3306端口放行。可以进行如下设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    第五十一章 开发自定义标签 - 使用%CSP.Rule方法
    k8s之从internal version到runtime.condec
    JavaScript知识系列(4)每天10个小知识点
    flutter系列之:Navigator的高级用法
    当你认为Python程序慢时,几个方法你使用了吗
    【Matplotlib绘制图像大全】(二十一):Matplotlib为绘图添加注释
    Devart ODBC Driver for BigCommerce 2.0.1
    【IOC,AOP】spring的基础概念
    Cadence IC618使用
    高德地图API-获取位置信息的经纬度
  • 原文地址:https://blog.csdn.net/weixin_48088839/article/details/132942575