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

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# 批量插入的缓存大小设置为32MB
bulk_insert_buffer_size=33554432# 是否开启慢日志记录。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 global  @@foreign_key_checks;
# 设置外链检查参数
SET foreign_key_checks=0;# 检查当前主键重复参数
SELECT global  @@unique_checks;
# 设置当前主键重复参数
SET unique_checks=0;# 查看批量插入的缓存大小设置为32MB
SHOW VARIABLES LIKE 'bulk_insert_buffer_size';
# 批量插入的缓存大小设置为32MB
SET bulk_insert_buffer_size=33554432 ;参考笔记:# 是否检查外键。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.mrgr.cn/news/98855.html

相关文章:

  • Git核心命令
  • 深度学习2.5 自动微分
  • 智能Todo协作系统开发日志(二):架构优化与安全增强
  • Livox Avia激光雷达与工业相机标定项目从零学习
  • 探索大语言模型(LLM):目标、原理、挑战与解决方案
  • Git 查看提交历史
  • Git仓库创建
  • Jmeter创建使用变量——能够递增递减的计数器
  • Git 工作区、暂存区和版本库
  • 第十节:性能优化-如何排查组件不必要的重复渲染?
  • Git标签的认识
  • 探索大语言模型(LLM):马尔可夫链——从诗歌分析到人工智能的数学工具
  • 探索大语言模型(LLM):定义、发展、构建与应用
  • postman莫名奇妙报错,可能是注释引起的。postman 过滤请求体中的注释。
  • 爬虫利器SpiderTools谷歌插件教程v1.0.0!!!web端JavaScript环境检测!!!
  • 【React】项目的搭建
  • WebSocket 双向通信技术详解
  • DS-SLAM 源码阅读之运动一致性检测
  • 【LangChain4j快速入门】5分钟用Java玩转GPT-4o-mini,Spring Boot整合实战!| 附源码
  • vllm 本地部署qwen2.5/Qwen2.5-32B-Instruct-AWQ模型