Centos下mysql8的安装配置
2022-06-29 本文已影响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;