您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

CentOS下MySQL8.0的超详细的安装及配置文档

时间:2020-03-28 15:09:52  来源:  作者:

操作系统环境:centos linux release 7.7.1908 (Core)

「原创」CentOS下MySQL8.0的超详细的安装及配置文档

 

基础环境配置

关闭SeLinux及防火墙

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0 
​
systemctl stop firewalld    //停止系统默认的防火墙
systemctl mask firewalld    //屏蔽服务(让它不能启动)
yum remove -y firewalld     //卸载系统自带的防火墙

安装运维基础工具

yum install -y chkconfig  net-tools ntsysv mlocate lrzsz wget lsof setuptool 

安装yum源

yum install -y epel-release
wget https://dev.MySQL.com/get/mysql80-community-release-el7-2.noarch.rpm
yum localinstall -y mysql80-community-release-el7-2.noarch.rpm

MySQL8.0安装

yum install -y bison-devel libaio-devel perl-Data-Dumper
yum install -y mysql-server
systemctl start mysqld     //启动MySQL
systemctl enable mysqld.service  //开机自启动

由于mysql的yum源是在国外,所以,在国内安装很慢,因此,森哥的做法,是直接下载rpm包回来手工安装 。如下操作:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
yum localinstall -y mysql-community-*     //使用localinstall会自己补足未安装的所需要组件
systemctl start mysqld     //启动MySQL
systemctl enable mysqld.service  //开机自启动
「原创」CentOS下MySQL8.0的超详细的安装及配置文档

 


「原创」CentOS下MySQL8.0的超详细的安装及配置文档

 

修改初始密码

grep 'temporary password' /var/log/mysqld.log     //mysql5.7版本后,初始密码不再为空,默认随机生成,可通过该命令查询
mysql -u root -p   //进入mysql,输入刚刚查到的密码
alter user 'root'@'localhost' identified with mysql_native_password by '三种或以上的八位字符';        //修改密码,并将密码插件更改为mysql_native_password

初始my.cnf配置的内容为:

cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
​
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
​
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
​
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

原则上,上面的这个配置,就可以正常使用了。但有时候为了一些业务场合的应用,就需要考虑对其进行修改,以达到符合实现业务的需求。

mkdir /var/log/mysqld
touch /var/log/mysqld/error.log
chown mysql.mysql /var/log/mysqld -R
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

# server-id = 1    //单MySQL服务下,可以省略不用

datadir=/var/lib/mysql        //数据文件所在位置
socket=/var/lib/mysql/mysql.sock     //sock文件所在位置
log_error = /var/log/mysqld/error.log       //数据库错误日志文件

# skip_name_resolve = 1         //设置这个,说明只能通过IP连接,不用主机名,一般不建议使用

character-set-server=utf8mb4         //数据库默认字符集,可以支持表情符号等,utf8不支持表情符号。另外utf8mb4是mysql8.0起支持的。
collation-server = utf8mb4_general_ci    //数据库字符集对应一些排序等规则,必须和character-set-server对应
transaction_isolation = READ-COMMITTED     //事务隔离级别,默认为可重复读
init_connect='SET NAMES utf8mb4'           //设置client连接mysql时的字符集,防止乱码
max_connections=500                       //最大连接数
max_connect_errors = 1000                  //最大错误连接数
explicit_defaults_for_timestamp = true       //TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
max_allowed_packet = 1024M                     //SQL数据包发送的大小,如果有BLOB对象建议修改成1G

# interactive_timeout = 1800               //MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
# wait_timeout = 1800

tmp_table_size = 134217728                //内部内存临时表的最大值,超过了这个值将写入磁盘,系统IO压力增大
max_heap_table_size = 134217728

# query_cache_size = 0                   //禁用mysql的缓存查询结果集功能,可根据业务需求是否开启,通常为关闭
# query_cache_type = 0

# slow_query_log = 1                                   //慢查询sql日志设置
# slow_query_log_file = /var/log/mysqld/slow.log
# long_query_time = 8                                 //慢查询执行的秒数,必须达到此值可被记录
# log_queries_not_using_indexes = 1                   //检查未使用到索引的sql
# log_throttle_queries_not_using_indexes = 5         //开启后,记录慢sql的频次、每分钟记录的条数
# min_examined_row_limit = 100                         // 检索的行数必须达到此值才可被记为慢查询

# skip-log-bin                                    //关闭binlog功能
binlog_expire_logs_seconds=604800                              //binlog日志文件保存的过期时间,过期后自动删除
innodb_log_file_size=60M
innodb_buffer_pool_size=128M

[client]
default-character-set=utf8mb8
socket=/var/lib/mysql/mysql.sock

[mysqld_safe]
open-files-limit = 8192
log-error=/var/log/mysqld.log
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid

密码恢复

有时候,会将root密码给忘记了,就需要对MySQL进行密码恢复。

在/etc/my.cnf中,的[mysqld]内,加入如下内容:

skip-grant-table             //改为安全模式,无法密码登陆

重启mysqld

systemctl restart mysqld

进入重置密码

mysql -u root -p             //空密码,直接回车
use mysql;
update user set authentication_string='' where user='root';   //先清空密码

注释掉my.cnf中的skip-grant-table,再重启mysqld。然后就可以免密码进入,再修改密码。

mysql -u root -p   //不用输入密码,直接进入
alter user 'root'@'localhost' identified with mysql_native_password by '三种或以上的八位字符';        //修改密码,并将密码插件更改为mysql_native_password

现在就恢复正常使用了。



Tags:MySQL8.0   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言:很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段。笔者自己本地也有8.0环境,但一直未进行测试。本篇文章我们就一起来看下 MySQL8.0 快速加列到底要如何操作...【详细内容】
2020-09-11  Tags: MySQL8.0  点击:(120)  评论:(0)  加入收藏
最近升级了MySQL8.0.20版本发现一个很神奇的现象: 字段只要是integer类型的,不管你设置成多少,保存之后都会变成0...这就很诡异了,工具问题?然后去mysql中直接修改,也是如此。没办...【详细内容】
2020-07-17  Tags: MySQL8.0  点击:(1222)  评论:(0)  加入收藏
前言:不知不觉,MySQL8.0已经有好多个GA小版本了。目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了。本篇文章主要介绍从5...【详细内容】
2020-05-22  Tags: MySQL8.0  点击:(60)  评论:(0)  加入收藏
操作系统环境:CentOS Linux release 7.7.1908 (Core) 基础环境配置关闭SeLinux及防火墙sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/configsetenforce 0...【详细内容】
2020-03-28  Tags: MySQL8.0  点击:(67)  评论:(0)  加入收藏
双mysql,只是在节约成本的前提下,考虑使用的,更多的是在开发测试环境使用,若是生产环境,尽量不建议如此使用。若是生产环境,森哥不建议双MySQL共存。而且,尽量建议使用提供商提供的...【详细内容】
2020-03-08  Tags: MySQL8.0  点击:(87)  评论:(0)  加入收藏
MySQL从5.7一跃直接到8.0,本次的版本更新,在功能上主要有以下6点:1,账户与安全2,优化器索引3,通用表表达式4,窗口函数5,InnoDB 增强6,JSON 增强一、账户与安全1.用户的创建与授权  ...【详细内容】
2019-09-24  Tags: MySQL8.0  点击:(293)  评论:(0)  加入收藏
一、安装前准备1、在官网下载MySQL安装包(注意下载的安装包类型) 2、查看是否安装mariadb# rpm -qa | grep mariadb 3、卸载mariadb# rpm -e --nodeps mariadb-libs-5.5.6...【详细内容】
2019-06-26  Tags: MySQL8.0  点击:(407)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(7)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(31)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(28)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条