• Linux 下安装配置部署MySql8.0


    一 . 准备工作

    MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.34

    https://dev.mysql.com/downloads/mysql/

    本次linux机器使用的是阿里云ECS实例

    二 . 开始部署

    1. 将安装包上传至服务器 解压到当前文件夹

    tar -zxvf mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz
    

    2. 移动解压后的目录到目标安装目录

    sudo mv mysql-8.0.34-linux-glibc2.28-x86_64 /usr/local   

    3. 文件名太长,改成 mysql-8.0.34

    mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql-8.0.34

    4. 增加用户组 mysql,在用户组下增加用户 mysql

    1. # 增加用户组 mysql
    2. sudo groupadd mysql
    3. # 在用户组下增加用户 mysql
    4. sudo useradd -r -g mysql mysql

    5. 检查用户组、用户是否存在

    groups mysql

    若存在则显示 mysql : mysql ;若不存在,则显示 groups: mysql: No such user

    6. 将安装目录 /usr/local/mysql-8.0.34/ 的所有者及所属组改为 mysql

    chown -R mysql:mysql /usr/local/mysql-8.0.34/

    7. 在/etc下创建 my.cnf配置文件

    touch /etc/my.cnf

    8. 编辑my.cnf配置文件

    vim /etc/my.cnf

    加配置,设置编码格式及忽略大小写:

    [mysqld]
    basedir=/usr/local/mysql-8.0.34
    datadir=/usr/local/mysql-8.0.34/data
    port=3306
    socket=/tmp/mysql.sock
    character_set_server=utf8
    lower_case_table_names=1
    log-error=/usr/local/mysql-8.0.34/data/mysql.log
    pid-file=/usr/local/mysql-8.0.34/data/mysql.pid
    [mysql]
    default-character-set = utf8

    9. 初始化

    在 mysql-8.0.11 目录下创建一个 data 文件夹

    1. cd /usr/local/mysql-8.0.34/
    2. mkdir data

    初始化

    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.34/ --datadir=/usr/local/mysql-8.0.34/data/

    若出现以上报错,尝试用如下解决方案

    执行以下命令后重试
    yum install libaio
    yum -y install numactl

    将mysql加入到可控制启动服务的文件夹内,并命名mysql(service可控制的服务名)

    目的:可用 service mysql start命令来控制启动 mysql

    1. cd support-files
    2. cp mysql.server /etc/init.d/mysql

    10. 配置profile环境变量

    vim /etc/profile

    在底部添加以下内容:

    export MYSQL_HOME="/usr/local/mysql-8.0.34"

    export PATH="$PATH:$MYSQL_HOME/bin"

    让修改的profile文件立即生效

    source /etc/profile

    11. 启动并登录 mysql  

    启动mysql

    service mysql start

    初始密码可以查看 /usr/local/mysql-8.0.34/data/mysql.log 日志文件,在前面几行中找到生成的密码,如下所示:

    登录 mysql

    mysql -u root -p

    修改密码

    1. mysql> use mysql;
    2. mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
    3. mysql> flush privileges;

    11. 远程连接mysql数据库

    1.查询访问权限

    select user,host from mysql.user;

    root用户的localhost表示只允许本机访问,要实现远程连接,可以将用户的host改为%,表示允许任意主机访问,如果需要设置只允许特定ip访问,则应改为对应的ip。

    2. 修改root用户的host字段为%

    update mysql.user set host="%" where user="root";

    3. 刷新配置

    flush privileges;

    4.开放端口号

    如果是物理服务器:

    查询3306端口是否开放

    firewall-cmd --query-port=3306/tcp

    没有开放则添加3306端口

    firewall-cmd --zone=public --add-port=3306/tcp --permanent

    添加端口后刷新防火墙

    firewall-cmd --reload

    如果是云服务器:

    配置实例入方向的访问规则,增加3306端口号。

    5. 使用客户端连接数据库

    本机使用的阿里云ecs所以我们的数据库主机选云服务器公网IP。

    客户端测试连接

    完结。。。

  • 相关阅读:
    记录不存在如何加锁MySQL_innodb select for update 没有满足条件的记录的情况下 是怎么加锁的呢
    【JVM基础】类加载机制
    HMTL知识点系列(3)
    速报|StarRocks亮相云栖大会,携手阿里云EMR 打造极速数据湖分析新体验
    MMPretrain
    Leetcode力扣 MySQL数据库 1907 按分类统计薪水
    vue项目中pc端上拉加载实现
    拉格朗日乘子法、极大似然估计、EM算法
    铨顺宏RFID:试卷管理中RFID技术智能系统发挥着什么样的作用
    ubuntu20.04安装anaconda3搭建python环境
  • 原文地址:https://blog.csdn.net/qq_44936392/article/details/133944275