美文网首页
Centos下mysql8的安装配置

Centos下mysql8的安装配置

作者: 升职哦 | 来源:发表于2022-06-29 21:41 被阅读0次

    1.查看linux glibc 版本

    # input
    ldd --version
    # output
    ldd (GNU libc) 2.17
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    Written by Roland McGrath and Ulrich Drepper.
    

    2.根据glibc版本选择相应的mysql安装包进行下载

    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz
    

    3.解压并重命名

    # 解压
    tar -Jxvf mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz
    # 重命名
    mv mysql-8.0.25-linux-glibc2.17-x86_64-minimal mysql-8.0.25
    

    4.mysql依赖目录创建

    # 创建存放数据文件、性能数据库等的目录,如数据文件ibdata01
    mkdir data
    # 存放异常日志、慢日志等
    mkdir log
    # 存放回滚日志文件,如undo_001、undo_002
    mkdir undolog
    # 存放binlog日志文件,用于备份同步等等
    mkdir binlog
    # tmp临时文件路径
    mkdir tmp
    

    5.创建mysql的用户组以及用于运行的用户

    # 创建名称为mysql的用户组
    groupadd mysql
    # 在用户组mysql下建立mysql这个用户
    useradd -r -g mysql mysql
    # 设置mysql用户的密码
    passwd mysql
    # 设置密码为 root1234
    

    6.mysql conf配置文件的创建

    cd /opt/mysql-8.0.25
    mkdir conf
    vim mysql.conf
    #################
    -----------vim start-------------------
    [mysqld]
    # GENERAL
    # 设置数据存放位置
    basedir=/opt/mysql-data
    datadir=/opt/mysql-data/data
    tmpdir=/opt/mysql-data/tmp
    # lc-message-dir配置
    lc-messages = en_US
    lc-messages-dir = /opt/mysql-8.0.25/share
    # 不要把socket和pid放在mysql默认编译位置
    socket=/opt/mysql-data/mysql.sock
    pid_file=/opt/mysql-data/mysql.pid
    # 指定需要用mysql用户来启动mysql
    user=mysql
    port=13306
    # 默认存储引擎
    default_storage_engine=InnoDB
    lower_case_table_names=1
    ############## innodb  ################
    # innodb表空间路径,如果不设置默认为data目录
    innodb_data_home_dir=/opt/mysql-data/data
    # innodb数据文件名称和大小,超过配置的自动扩展
    innodb_data_file_path=ibdata1:512M;ibdata2:512M:autoextend
    #(目前可用内存-mysql自身需要的内存-系统缓存innodb日志的缓存-其他配置的缓存(如查询缓存等))/105%想下取一个整数值即可
    # 设置方式类似2147483648或者2G或者200M
    innodb_buffer_pool_size=200M
    # 事务日志文件大小,循环写的方式,把数据文件的随机IO转为几乎顺序的IO,默认是两个5M的文件,对于生产环境来说至少要几百甚至上G的大小(需要重启)
    innodb_log_file_size=20M
    # 内存日志缓冲区,在缓冲满/事务提交/1秒钟Innodb会刷写缓冲区内容到日志文件
    innodb_log_buffer_size=8M
    
    ############## undolog ##############
    # undolog的所在表空间目录,如果不设置,默认在datadir中,文件名为undo_001和undo_002,可在系统运行是动态创建
    innodb_undo_directory=/opt/mysql-data/undolog
    # 分配给每个undo log表空间的回滚段数量,默认128,也是最大值
    innodb_rollback_segments=128
    
    ############## binlog ################
    # binlog路径
    log_bin=/opt/mysql-data/binlog/binlog
    # binlog index 路径
    log_bin_index=/opt/mysql-data/binlog.index
    # binlog最大文件大小
    max_binlog_size=500M
    
    ############## 慢日志 #############
    # 错误日志路径
    log_error=/opt/mysql-data/log/error.log
    # 开启慢查询日志
    slow_query_log=1
    # 慢查询日志路径
    slow_query_log_file=/opt/mysql-data/log/mysql-slow.log
    # 慢查询阀值,默认10s
    long_query_time=10
    # 慢日志输出方式,默认FILE输出到文件,可以设置为TABLE写入到mysql.slow_log表,也可以设置FILE,TABLE
    log_output=FILE
    
    # 最大连接数,默认是100,生产可设置500~5000,取决于服务器的负载能力,一般来说1000足够
    max_connections=100
    # mysql在服务端的线程缓存池存放的最大线程数,并不是越大越好,通常并发在100-120可设置为20,并发在500-700,可设置200,256的上限值是个不错的估值
    thread_cache_size=256
    # 表缓存大小,如果opened_tables变化较大,说明该值太小了,但大部分的情况下,建议不超过10000或者10240,设置为max_connections的十倍比较合理
    table_open_cache=2000
    open_files_limit=100000
    [client]
    socket=/opt/mysql-data/mysql.sock
    port=13306
    -----------vim end-------------------
    
    

    7.变更mysql目录的所属者为用户mysql以及设置目录权限

    # 变更目录权限为mysql用户组下的mysql用户
    chown -R mysql.mysql /opt/mysql-data
    # 授权目录
    chmod 750 -R /opt/mysql-data
    

    8.根据配置文件my.conf进行实例初始化

    # 在/opt/mysql-8.0.25/bin目录下执行以下命令进行初始化
    cd /opt/mysql-8.0.25/bin
    # --initialize 安全安装,会给数据库的root用户生成随机密码,需要记录好以便登录和修改密码,这个随机密码可以在/data/mysql-8.0.21/log/error.log日志中找到
    # --initialize-insecure 非安全安装,不会生成密码,可以后续手动设置
    ./mysqld --defaults-file=/opt/mysql-8.0.25/conf/mysql.conf --initialize-insecure --user=mysql
    

    9.把mysqld.sock 设置一个软连接到/tmp目录中

    # 把mysql.sock设置一个软连接到/tmp目录中,否则执行mysql等命令时会报ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'异常
    ln -s /opt/mysql-data/mysql.sock /tmp/mysql.sock
    

    10.mysql的启动、初始root账号登录、停止等操作

    cd /opt/mysql-8.0.25/bin
    # 启动
      ./mysqld_safe --defaults-file=/opt/mysql-8.0.25/conf/mysql.conf &
    # 登录mysql(启动配置参数配置了--initialize-insecure;密码为空,直接回车即可)
    ./mysql -u root -p
    

    成功登录mysql 命令行展示如下:

    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 8.0.25 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2021, Oracle and/or its affiliates.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    # 修改root账户密码
    alter user root@localhost IDENTIFIED BY 'root1234';
    # 开启远程连接
    update mysql.user set host='%' where user='root';
    
    ## root下所有表赋予远程连接权限
    grant all privileges on *.* to root@'%'identified by 'root1234';
    
    cd /opt/mysql-8.0.25/bin
    # 停止mysql命令
    ./mysqladmin -uroot -proot1234 shutdown
    

    mysql8(navicat)连接失败的解决办法:

    # 修改加密规则并设置新密码
    ALTER USER 'root'@'%' IDENTIFIED BY 'root1234' PASSWORD EXPIRE NEVER;
    # 更新root用户密码,并更新验证方式
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root1234';
    # 刷新权限
    FLUSH PRIVILEGES; 
    

    相关文章

      网友评论

          本文标题:Centos下mysql8的安装配置

          本文链接:https://www.haomeiwen.com/subject/tkyxbrtx.html