ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

centos8中安装mysql8.0.21版本以及配置优化

2021-03-23 09:02:52  阅读:581  来源: 互联网

标签:8.0 21 mysql8.0 log mysql 日志 data centos8


一、下载解压安装包以及准备相关日志目录

1、下载linux通用社区版mysql community server 8.0.21

选择mysql社区版server

选择对应系统版本的mysql下载

可以通过以下地址直接下载:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

2、解压并修改目录名称

本次准备安装到/data目录,把下载好的文件直接上传到/data目录或者通过wget的命令直接下载到/data

#解压缩,tar.xz格式解压较慢需要耐心等待
tar -Jxvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
#修改解压后的目录
mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0.21

3、准备相关目录,主要在/data/mysql-8.0.21下创建data、log、undolog、binlog、tmp目录

以下目录的使用主要通过my.cnf文件进行指定

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

二、创建mysql的用户组以及用于运行的用户

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

三、在mysql根目录下创建my.cnf文件,内容如下

mysql8开始默认的字符集就是utf8mb4(主要支持4个字节,存储emoji表情等),不需要额外的设置

回滚日志配置可参考网页:https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html

innodb配置可参考网页:https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html

[mysqld]
#GENERAL
#设置数据存放位置
basedir=/data/mysql-8.0.21
datadir=/data/mysql-8.0.21/data
tmpdir=/data/mysql-8.0.21/tmp
#不要把socket和pid放在mysql默认编译位置
socket=/data/mysql-8.0.21/mysql.sock
pid_file=/data/mysql-8.0.21/mysql.pid
#指定需要用mysql用户来启动mysql
user=mysql
port=3306
#默认存储引擎
default_storage_engine=InnoDB
lower_case_table_names=1
############## innodb  ################
#innodb表空间路径,如果不设置默认为data目录
innodb_data_home_dir=/data/mysql-8.0.21/data
#innodb数据文件名称和大小,超过配置的自动扩展
innodb_data_file_path=ibdata1:512M;ibdata2:512M:autoextend
#一般初略估算为系统可用内存的50-60%左右,当然buffer_pool需要小心计算,否则可能会引起启动异常或造成内存浪费
#比如根据buffer_pool_chunk_size和buffer_pool_instances数量等来计算
#设置方式类似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=/data/mysql-8.0.21/undolog
#分配给每个undo log表空间的回滚段数量,默认128,也是最大值
innodb_rollback_segments=128

############## binlog ################
#binlog路径
log_bin=/data/mysql-8.0.21/binlog/binlog
#binlog index 路径
log_bin_index=/data/mysql-8.0.21/binlog.index
#binlog最大文件大小
max_binlog_size=500M

############## 慢日志 #############
#错误日志路径
log_error=/data/mysql-8.0.21/log/error.log
#开启慢查询日志
slow_query_log=1
#慢查询日志路径
slow_query_log_file=/data/mysql-8.0.21/log/mysql-slow.log
#慢查询阀值,默认10s
long_query_time=1
#慢日志输出方式,默认FILE输出到文件,可以设置为TABLE写入到mysql.slow_log表,也可以设置FILE,TABLE
log_output=FILE

#最大连接数,默认是100,生产可设置500~5000,取决于服务器的负载能力,一般来说1000足够
max_connections=1000
#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=/data/mysql-8.0.21/mysql.sock
port=3306

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

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

五、根据配置文件my.cnf进行实例初始化

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

六、mysql的启动、初始root帐号登录、停止等操作

1、启动

#启动 ,使用mysqld_safe是因为这个命令在启动后可以跟踪实例运行情况,异常停止后可以再次拉起实例进程
./mysqld_safe --defaults-file=../my.cnf &

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

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

3、通过./mysql -u root -p登录,输入初始化时随机生成的密码(可以在/data/mysql-8.0.21/log/error.log日志中找到)

#修改root账户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';

#如果需要在本机之外连接root用户,需要设置root的host为%,否则会报Host XXX is not allowed to connect to 
#this MySQL server的错误,执行以下命令后需要重启实例
update mysql.user set host='%' where user='root';

4、停止mysql实例的命令

#停止服务可在/data/mysql-8.0.21/bin目录下执行以下命令
./mysqladmin -uroot -proot123 shutdown

七、添加开机自动启动、关机自动关闭以及加入系统启动服务

1、在/etc/init.d目录下添加文件名为mysql的启动脚本

文件内容如下(系统开机会调start()函数,关机会调stop()函数):

#!/bin/bash

#chkconfig: 2345 70 30
#description: mysql command
#processname: mysql

start(){
        cd /data/mysql-8.0.21/bin/
        ./mysqld_safe --defaults-file=/data/mysql-8.0.21/my.cnf &
}

stop(){
        cd /data/mysql-8.0.21/bin/
        ./mysqladmin -uroot -proot123 shutdown
}

case "$1" in
        start)
                cd /data/mysql-8.0.21/bin/
                ./mysqld_safe --defaults-file=/data/mysql-8.0.21/my.cnf &
                echo "starting mysql..."
                ;;
        stop)
                cd /data/mysql-8.0.21/bin/
                ./mysqladmin -uroot -proot123 shutdown
                echo "shutting mysql..."
                ;;
        restart)
                cd /data/mysql-8.0.21/bin/
                ./mysqladmin -uroot -proot123 shutdown
                echo "shutting mysql..."
                cd /data/mysql-8.0.21/bin/
                ./mysqld_safe --defaults-file=/data/mysql-8.0.21/my.cnf &
                echo "starting mysql..."
                ;;
        *)
                echo "Usage: #0 {start|stop|restart}"
                ;;
esac

2、加入系统启动服务以及设置开机启动

#授权执行权限
chmod +x mysql
#加入系统服务
chkconfig --add mysql
#设置开机启动
chkconfig mysql on

3、平时操作命令

#开启mysql服务
service mysql start
#关闭mysql服务
service mysql stop
#重启mysql服务
service mysql restart

 

标签:8.0,21,mysql8.0,log,mysql,日志,data,centos8
来源: https://blog.csdn.net/thomson2021/article/details/115109071

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有