CentOS7.x的mysql8.0.21离线安装

这篇博客详细介绍了在Linux环境下安装MySQL 8.0.21的步骤,包括解压、重命名、授权、创建目录、配置my.cnf、初始化、设置密码、启动与权限设定。还提到了Navicat连接问题以及如何解决新版本密码加密问题。
摘要由CSDN通过智能技术生成

一. 上传mysql8.0.21压缩包并解压,配置参数等

 

可以在我的博客中点击下载资源,mysql8-linux.zip,是一个包涵配置文件的mysql安装包

        a. 解压该压缩包

unzip mysql8-linux.zip

        b. 进入解压目录并解压mysql-8.0.21-el7-x86_64.tar.gz文件

tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz

        c. 将解压后的文件夹./mysql-8.0.21-el7-x86_64重命名并复制或者移动到/usr/local/mysql下

cp mysql-8.0.21-el7-x86_64 /usr/local/mysql -r
#或
mv mysql-8.0.21-el7-x86_64 /usr/local/mysql

        d. 创建mysql用户并将/usr/local/mysql 文件夹授权

#1.进入工作目录
cd /usr/local
#2.新增mysql组
groupadd mysql
#3.新增mysql用户并设置组为mysql
useradd -r -g mysql mysql
#4.进入mysql下并授权所有文件
cd mysql/ && chown -R mysql:mysql ./

        e.创建mysql所需日志及数据目录并给该目录赋权

#创建mysql日志和数据目录到/mysql/下面,我的服务器在该目录下挂载的硬盘,
#所以放在这,你们可以自己指定存放位置,但是要注意修改配置文件中对应目录
mkdir -p /mysql/{data,bin-log,slow_log,error_log}

#赋权 将/mysql目录赋权给mysql组的mysql用户
chown -R mysql:mysql /mysql

        f.将启动文件放入自启动目录

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

        g.将压缩包中的my.cnf拷贝到/etc/下面并编辑修改缓存大小端口号慢查询binlog等,下面是我的

[mysqld]
#查询模式,添加该行可支持分组查询时查询多列 (select c1,c2,c3,count(1) total from tables group by c1)
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
port=3306
bind-address=0.0.0.0
#基础工作目录
basedir=/usr/local/mysql 
#数据存放目录
datadir=/mysql/data
#错误日志文件,初始化时,生成的root用户的密码就在这
log-error=/mysql/error_log/mysql_error.log
#开启慢查询功能
slow_query_log=1 
#慢查询SQL日志
slow_query_log_file=/mysql/slow_log/mysql_slow_query.log
#慢查询超时时间,如果超过5秒认为是慢查询,并被记录到slow_query_log_file中
long_query_time=5 
server-id=1
skip-external-locking
skip-name-resolve
#binlog日志,注意,这个地方的bin-log不是文件夹,而是binLog日志文件
log_bin=/mysql/data/binlog/bin-log
#binlog格式化方式
binlog_format=mixed 
#默认存储引擎
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2
#客户端最大连接数
max_connections=4000 
#用户最大连接数
max_user_connections=1000 
wait_timeout=200 
general_log=OFF
general_log_file=/var/lib/mysql/general.log
#开启事件功能定时任务等
event_scheduler=ON
default-time_zone='+8:00'
#innodb存储引擎默认缓冲池大小(推荐服务器内存的一半)
innodb_buffer_pool_size=2G 
innodb_buffer_pool_instances=4
read_buffer_size=32M
read_rnd_buffer_size=32M
join_buffer_size=32M
sort_buffer_size=64M
#读的IO线程数
innodb_read_io_threads=16 
#写的IO线程数
innodb_write_io_threads=16 
table_open_cache=4000

二. 初始化mysql

#初始化
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data

三. 查询密码

 在步骤三初始化后,需要到日志目录下去找启动日志,比如:

cat /mysql/error_log/mysql_error.log

 

 在输出的日志中就可以找到初始化密码,红色框框选的就是密码了

四. 启动mysql并登陆测试

#1. 先刷新daemon,不然会提示找不到mysql服务
systemctl daemon-reload
#2. 启动mysql
systemctl start mysqld
#3. 查看mysql状态
systemctl status mysqld
#4. 检查mysql是否被设置开机自启
chkconfig --list
#5. 设置开启自启
chkconfig --add mysqld
#6. 再次验证是否被设置开机自启
chkconfig --list 
#7. 输入第三步中查询到的密码并登陆
/usr/local/mysql/bin/mysql -uroot -p
#7.1 或者创建一个软连接后,直接使用mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin

五. 修改密码并设置客户端访问mysql服务的权限

 在第四步登陆root用户之后,执行下面操作:

#1. 设置root的密码为:zheshimima,你也可以设置其他的,
alter user 'root'@'localhost' identified by 'zheshimima'; 
#2. 选择当前操作数据库为mysql
use mysql;
#3. 查看用户列表
select * from user;
#4. 设置访问权限为所有客户端主机均可访问,即更新root用户的host字段为'%'
#当然这样做不是太安全,因为所有和这台服务器网络相通的服务器都可以访问到这个mysql服务,可以从防火墙或者把host设置为指定的ip地址来防止非法访问
update user set host='%' where user='root';
#5. 退出mysql客户端
exit;
#6. 重启mysql[重要]
systemctl restart mysqld

六. 用navicat或者其他客户端测试登陆

 输入用户名root和设置的密码zheshimima,设置主机地址:192.168.xx.152和端口:3306即可连接成功,如下图所示:

 注意:

由于mysql服务的版本较高(8.0.21),高版本使用了新的密码加密插件,使用Navicat15是可以正常登陆的,而使用老版本的Navicat是无法登陆的,比如Navicat12,需要升级客户端或者设置默认的密码加密插件为老版本的,操作如下:

#命令
ALTER USER '用户名'@'主机地址' IDENTIFIED WITH mysql_native_password BY '设置的密码';

#例如
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'zheshimima';

如此就可以使用老客户端进行登陆了,到这里mysql就搭建完成了,对此有疑问的朋友欢迎留言评论,我会在闲暇时间逐一回复,喜欢的朋友欢迎关注加收藏哦(* ̄︶ ̄)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值