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

ubuntu24.04离线安装deb格式的mysql-community-8.4.4

1,下载解压

参考: https://blog.csdn.net/2202_76101487/article/details/145967039
下载: wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-server_8.4.4-1ubuntu24.04_amd64.deb-bundle.tar 
建议个目录mysql8然后把安装包移过去,解压: tar -xvf mysql-server_8.4.4-1ubuntu24.04_amd64.deb-bundle.tar

2,卸载旧的mysql程序

查询安装的mysql:  dpkg -l | grep mysql
停止mysql进程: service mysql stop 删除安装目录: /var/lib/mysql  /etc/mysql  /var/log/mysql  
卸载Mysql:  dpkg --purge mysql-community-client-core && dpkg --purge mysql-community-client-plugins

3,用dpkg -i命令批量安装

批量安装: dpkg -i mysql-common_8.4.4-1ubuntu24.04_amd64.deb mysql-client_8.4.4-1ubuntu24.04_amd64.deb mysql-community-client_8.4.4-1ubuntu24.04_amd64.deb mysql-community-client-core_8.4.4-1ubuntu24.04_amd64.deb mysql-community-client-plugins_8.4.4-1ubuntu24.04_amd64.deb mysql-community-server-core_8.4.4-1ubuntu24.04_amd64.deb mysql-community-server_8.4.4-1ubuntu24.04_amd64.deb安装完成后,查看mysql状态: systemctl status mysql 或者: service mysql status

4,配置账户

连接到数据库,在ubuntu中执行命令,然后输入密码:  mysql -uroot -p
添加root%用户: CREATE USER 'root'@'%' IDENTIFIED BY 'mytestaaa';
赋权限给root%用户:  grant all privileges on *.* to 'root'@'%' with grant option; 
刷新配置:  flush privileges;查看当前Mysql的端口号:  show global variables like 'port';

5,优化性能,修改配置文件

修改mysql配置: vim /etc/mysql/mysql.conf.d/mysqld.cnf 
在最下面添加下面的内容:

# 下面是优化配置
# 参考: https://developer.huawei.com/home/forum/hwc/thread-02109153476715536012-1-1.htmlport=3316
bind-address=0.0.0.0log_bin=mysql-bin
binlog_format=ROW# 下面是性能优化
max_connections=300
innodb_buffer_pool_instances=8
innodb_buffer_pool_size=1G# 是否开启慢日志记录。1打开,0关闭。慢日志查询的默认路径: /var/lib/mysql/YC10-14U-slow.log。
# 查询值: show variables like 'slow_query%'; 
slow_query_log=1
# 慢sql日志文件及路径
slow_query_log_file=/home/logs/mysql/slowquery/sql_slow.log

6,执行sql配置mysql参数

# 检查当前外链检查参数
SELECT @@foreign_key_checks;
# 设置外链检查参数
SET foreign_key_checks=0;# 检查当前主键重复参数
SELECT @@unique_checks;
# 设置当前主键重复参数
SET unique_checks=0;参考笔记:# 是否检查外键。1打开,0关闭。 查询值: SELECT @@foreign_key_checks;只能执行sql来配置: SET foreign_key_checks=0;
# foreign_key_checks=0
# 禁用唯一性检查 。在golang里面,通过id设置来解决数据重复。 查询值: SELECT @@UNIQUE_CHECKS ; 只能执行sql来配置: SET unique_checks=0;
#unique_checks=0## 配置好以后核查,
# 查询缓存命中率:show status like 'Innodb_buffer_pool_read%'; 

配置完成后,重启Mysql, 在ubuntu中执行命令: systemctl restart mysql

7,参考链接

https://blog.csdn.net/qq_39239864/article/details/144562977

https://gitcode.csdn.net/65eec91f1a836825ed79d747.html

https://www.bilibili.com/opus/771742178064990243

https://developer.huawei.com/home/forum/hwc/thread-02109153476715536012-1-1.html

8,常用命令

# 查看最大连接数,默认151

show variables like 'max_connections' ; 

# 查看索引缓冲池最大内存(不带单位的话,就代表字节,可以用M,G为单位:例:1G,512M),默认为128M

show variables like 'innodb_buffer_pool_size';

# 显示缓冲池实例数,默认为1
show variables like 'innodb_buffer_pool_instances';

# 查看外键检查开关。1为打开,0为关闭,默认为1

SELECT @@foreign_key_checks;

# 查看主键是否重复的开关。1为打开,0为关闭,默认为1

SELECT @@unique_checks;

# 查看缓存相关的配置:

show variables like 'innodb_buffer_pool%'; 

# 查询缓存命中率: 

show status like 'Innodb_buffer_pool_read%'; 

远程连接Mysql(其中,-P代表端口号,-h代表IP地址): 

mysql -h 192.168.0.31 -P 3308 -u root -p 

查看版本: SELECT VERSION();

# 查看日志

cd /var/log/mysql

tailf error.log

9,优化实战

排查缓存命中

查看show status like 'Innodb_buffer_pool_read%';  的结果,

Innodb_buffer_pool_read_requests:逻辑读取请求的数量。 

Innodb_buffer_pool_reads:InnoDB无法从缓冲池满足的逻辑读取数,必须直接从磁盘读取。 

percent = innodb_buffer_pool_read_requests / (innodb_buffer_pool_reads + innodb_buffer_pool_read_requests) * 100% 

上述的 percent>=99%,则表示当前的buffer pool满足当前的需求。否则需要考虑增加 innodb_buffer_pool_size的值。 

缓存数据页占比: 

show status like 'Innodb_buffer_pool_pages%'; 

innodb_buffer_pool_pages_data:InnoDB缓冲池中包含数据的页数。这个数字包括脏页和干净页。(使用压缩表时,报告的Innodb_buffer_pool_pages_数据值可能大于) 

percent = Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100% 

上述的 percent>=95% 则表示当前的innodb_buffer_pool_size满足当前的需求。否则可以考虑增加 innodb_buffer_pool_size的值。 

如何判断MySQL使用内存会不会过高 

可能还有有一些担心,所有参数设置完毕后MySQL的占用会过高导致内存溢出,那么我们可以算一下他会不会太高。 

通过下面的SQL语句: 

SELECT ((@@key_buffer_size+@@innodb_buffer_pool_size+@@innodb_log_buffer_size)/1024/1024)+((@@read_rnd_buffer_size+@@read_buffer_size+@@myisam_sort_buffer_size+@@sort_buffer_size+@@join_buffer_size)/1024/1024*@@max_connections); 

最终单位为MB 

若该值不超过系统可用内存,说明还好(理论) 

http://www.xdnf.cn/news/30.html

相关文章:

  • 【C++初阶】--- list容器功能模拟实现
  • 基于flask+vue框架的灯饰安装维修系统u49cf(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 【Unity】JSON数据的存取
  • 燕山大学计算机网络之Java实现TCP数据包结构设计与收发
  • 有什么工具可以在家连接到公司内网?局域网址提供异地公网访问的那些常用方法
  • 一台 Master 多节点玩转 Kubernetes:sealos 一键部署实践
  • MahApps.Metro:专为 WPF 应用程序设计的 UI 框架
  • 【数据结构】AVL树
  • 自动驾驶系列—GLane3D: Detecting Lanes with Graph of 3D Keypoints
  • android liveData observeForever 与 observe对比
  • CS144 Lab0实战记录:搭建网络编程基础
  • 游戏引擎学习第231天
  • 02、GPIO外设(一):基础知识
  • Windows平台使用Docker部署Neo4j
  • 从零上手GUI Guider学习LVGL——Button
  • 【Windows本地部署n8n工作流自动平台结合内网穿透远程在线访问】
  • SAP HANA使用命令行快速导出导入
  • 【HFP】深入解析蓝牙 HFP 协议中呼叫转移、呼叫建立及保持呼叫状态的机制
  • 在 Kali Linux 上安装 Java OpenJDK 8(详细指南)
  • 在Pycharm配置stable diffusion环境(使用conda虚拟环境)
  • Mac idea WordExcel等文件git modify 一直提示修改状态
  • 深度剖析:GPT-3.5与GPT-4的主要区别及架构解析
  • 消除异步的传染性(代数效应)
  • Java八种常见的设计模式
  • 【python画图】:从入门到精通绘制完美柱状图
  • 2025华中杯B题——AI实现
  • C++23 新特性:std::size_t 字面量后缀 Z/z
  • 台式机 thingsboard 部署 MQTT服务器端口查询及公开本地站点到公网,MQTT客户端配置
  • 循环队列的实现