当前位置: 首页 > news >正文

CentOS7安装MySQL8.0.42

1、下载MySQL8.0.42

方式一:

通过网盘分享的文件:mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar
链接: https://pan.baidu.com/s/1wRRWxQxU55X8vFOU_0Y5pQ?pwd=1234 提取码: 1234

方式二:

https://dev.mysql.com/downloads/mysql/MySQL官网下载:

https://dev.mysql.com/downloads/mysql/

2、将下载好的mysql8通过MobaXterm或者其他工具,拖入到/usr/local/目录下

进入安装包目录 

cd /usr/local

3、拆分tar包

tar -xvf mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar
 

4、解压安装包

tar -xvf mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar

5、分别安装 common、libs、client、server 4个模块 

rpm -ivh mysql-community-common-8.0.42-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.42-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.42-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.42-1.el7.x86_64.rpm --nodeps --force

6、修改my.cnf配置

cd /etc

vi my.cnf

复制以下内容,

再输入:wq! 保存退出即可

[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4
no-auto-rehash[mysqld]
port=3306datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pidcharacter-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-external-locking
skip_name_resolve
max_connect_errors=10slow_query_log=on
long_query_time=3
slow_query_log_file=/var/log/slowsql.logkey_buffer_size=128M
read_buffer_size=1M
read_rnd_buffer_size=2M
max_allowed_packet=1M
table_open_cache=64
sort_buffer_size=512K
net_buffer_length=8Kdefault_storage_engine=InnoDB
innodb_buffer_pool_size=1024M
innodb_flush_log_at_trx_commit=2
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_log_files_in_group=3
innodb_lock_wait_timeout=50

7、在 /var/log 下新建一个 slowsql.log 文件,是用来记录慢SQL的日志,方便以后查看哪个SQL比较慢进行优化

cd log/

touch slowsql.log

赋权限:

chown mysql:mysql slowsql.log

  • chown:change owner(更改文件所有者)

  • mysql:mysql:第一个mysql是用户,第二个mysql是用户组

  • 这个命令将文件slowsql.log的所有者设置为mysql用户,所属组设置为mysql

 chmod 664 slowsql.log

  • chmod:change mode(更改文件权限)

  • 664:权限的数字表示

    • 第一个6(所有者权限):读(4) + 写(2) = 6

    • 第二个6(组权限):读(4) + 写(2) = 6

    • 第三个4(其他用户权限):只读(4)

8、 初始化前还要改一下配置里出现的一些文件夹归属和权限,否则可能因为没有权限报错

      chown -R mysql:mysql /var/lib/mysql

9、上面命令表示将目录 /var/lib/mysql 以及里面所有文件归属赋给mysql组的mysql用户,mysql组和mysql用户应该是安装的时候自动创建了的,可以在安装完后通过以下命令查看一下

   cat /etc/passwd

10、修改权限

chmod -R 755 /var/lib/mysql

(755代表所有者全权限,组用户/其他用户可读可执行不能编辑)

11、然后执行初始化命令(指定mysql用户)

sudo mysqld --user=mysql --initialize

   *重要:初始化完成之后,会自动生成一个随机密码在mysql日志文件里,

   即my.cnf配置的log-error配置

12、命令查看随机密码

cat /var/log/mysqld.log | grep password

13、启动MySQL,修改登录密码

     启动命令:systemctl start mysqld

   查看启动状态:systemctl status mysqld

14、 登录MySQL,修改登录密码

输入:mysql -uroot -p 回车,然后复制前面查到的随机密码粘贴过来

   不显示明文的,粘贴之后会显示粘贴了多少个字符(有的不显示),回车出现mysql>即登录成功

  修改登录密码:alter user 'root'@'localhost' identified by '123456';

\c

exit

mysql -uroot -p

15、创建非root远程登录用户,开启远程登录

创建远程登录用户以及设置密码:create user 'admin'@'%' identified by '123456';

   (* 注意:建议这里设置的密码复杂些,我这里只是作为教程设置得简单,数字+大小写字母+特殊字符都用上最好) 

赋予权限(*.*代表可访问操作所有数据库和表):

   grant all privileges on *.* to 'admin'@'%' with grant option;

   刷新生效:flush privileges;

   退出:exit;

16、firewall防火墙开放端口

   查看防火墙状态:systemctl status firewalld

执行命令开启:systemctl start firewalld

   永久开启3306端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent

   重启生效:firewall-cmd --reload

   查看有没有加上:firewall-cmd --list-ports

17、用 Navicat 或其他管理工具进行连接:

一开始报错连不上

解决

 (1)先登录mysql -u root -p

(2)检查现有 root 用户权限

SELECT Host, User FROM mysql.user WHERE User = 'root';

如果 Host 列没有 %(表示允许所有 IP)或你的客户端 IP(如 192.168.137.1),则需要授权。

(3)授权 root 用户远程访问

先创建用户(如果不存在)并设置密码

CREATE USER 'root'@'192.168.137.1' IDENTIFIED BY '123456';

授予权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.137.1' WITH GRANT OPTION;

刷新权限

FLUSH PRIVILEGES;

相关文章:

  • 展开说说Android之Retrofit详解_使用篇
  • 深度解析MySQL中的Join算法:原理、实现与优化
  • 如何在 Windows 上打造 macOS 式快速查看体验?
  • 2025最新1000+道Java面试题+答案整理(附JVM/MySQL/Spring/Redis)
  • 136.在 Vue3 中使用 OpenLayers 实现 GroupLayer 的添加、删除、显示、隐藏
  • P2C (Point-to-Curve) 算法深度解析
  • 传统的提示词优化中,损失函数有哪些
  • iOS即时通讯发送图片消息内存暴涨优化
  • 10.C S编程错误分析
  • MySQL 自增主键 ID 设置为 0有坑
  • 二叉树的最大深度题解
  • Apache Kafka Connect任意文件读取漏洞(CVE-2025-27817)
  • AWS Config:概述、优势以及如何开始?
  • Jmeter的三种参数化方式详解
  • 【WPF】WPF 中 `DisplayMemberPath` 与 `SelectedValuePath` 的深入理解与实战应用
  • Kafka Connect架构深度解析:从分布式设计到组件交互机制
  • 对抗串扰的第一武器
  • 基于深度学习的智能视频内容理解系统:技术与实践
  • 【JSON-To-Video】AI智能体开发:为视频图片元素添加动效(滑入、旋转、滑出),附代码
  • 苍穹外卖--基于Spring Cache缓存套餐
  • 学习做网站只学过c/360优化大师安卓手机版下载安装
  • 新手想写小说怎么做网站/刷排名seo软件
  • 中国最近新闻消息/点击宝seo
  • 品牌企业网站案例/如何做好网络营销管理
  • 宝鸡网站建设求职简历/萧山市seo关键词排名
  • 怎么改版网站/百度app下载安装 官方