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

MYSQL ------------MySQL 高级安装和升级 MySQL 中常用工具

MySQL 高级安装和升级

Linux 下的安装和升级

安装包的比较

  • RPM 包
    • 优点:安装方便,适合快速部署,RPM 包会自动处理依赖关系,易于管理和更新。
    • 缺点:缺乏一定的灵活性,可能包含一些不需要的组件,无法进行深度定制。
    # 安装 RPM 包的示例
    sudo rpm -ivh mysql-community-server.rpm
    
  • 二进制包
    • 优点:安装相对简单,只需要解压并配置环境变量,可根据需求选择不同的版本和组件。
    • 缺点:不能像源码包那样进行深度定制。
    # 解压二进制包的示例
    tar -zxvf mysql-8.0.xx-linux-x86_64.tar.gz
    
  • 源码包
    • 优点:可以进行深度定制,如去掉不需要的模块,只选择使用的字符集,根据硬件和需求进行优化。
    • 缺点:安装过程复杂,需要手动解决依赖关系,安装时间较长。

安装 RPM 包

  1. 首先,下载所需的 RPM 包,例如从 MySQL 官方网站下载 MySQL 社区版的 RPM 包。
  2. 然后,使用以下命令进行安装:
    sudo rpm -Uvh mysql-community-server.rpm
    sudo rpm -Uvh mysql-community-client.rpm
    sudo rpm -Uvh mysql-community-libs.rpm
    
  3. 安装完成后,启动 MySQL 服务:
    sudo systemctl start mysqld
    

安装二进制包

  1. 下载相应的二进制包,如 mysql-8.0.xx-linux-x86_64.tar.gz
  2. 解压二进制包到目标目录:
    tar -zxvf mysql-8.0.xx-linux-x86_64.tar.gz -C /usr/local/
    
  3. 创建必要的数据目录和配置文件:
    cd /usr/local/mysql
    mkdir data
    chown -R mysql:mysql data
    cp support-files/my-default.cnf /etc/my.cnf
    
  4. 初始化 MySQL 数据库:
    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
  5. 启动 MySQL 服务:
    bin/mysqld_safe --user=mysql &
    

安装源码包

  1. 安装必要的依赖,例如编译工具和开发库:
    sudo apt-get install build-essential cmake libncurses5-dev
    
  2. 下载 MySQL 源码包,如 mysql-8.0.xx.tar.gz
  3. 解压源码包:
    tar -zxvf mysql-8.0.xx.tar.gz
    
  4. 进入源码目录:
    cd mysql-8.0.xx
    
  5. 配置编译选项:
    cmake. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
        -DENABLED_LOCAL_INFILE=1 \
        -DWITH_CHARSET=utf8mb4 \
        -DWITH_EXTRA_CHARSETS=all \
        -DDEFAULT_CHARSET=utf8mb4 \
        -DDEFAULT_COLLATION=utf8mb4_general_ci
    
    • CMAKE_INSTALL_PREFIX:指定安装目录。
    • ENABLED_LOCAL_INFILE:允许本地文件导入。
    • WITH_CHARSETDEFAULT_CHARSET:设置字符集。
    • WITH_EXTRA_CHARSETS:选择额外的字符集。
  6. 编译和安装:
    make
    sudo make install
    

参数设置方法

  • 在 MySQL 中,可以通过修改配置文件 /etc/my.cnfmy.ini 来设置参数。例如:
    [mysqld]
    key_buffer_size = 256M
    innodb_buffer_pool_size = 1G
    

源码包安装的性能考虑

  • 去掉不需要的模块:在 cmake 配置阶段,使用 DPLUGIN_<module>=NO 来排除不需要的模块,例如:
    cmake. -DPLUGIN_AUTH_PAM=NO
    
  • 只选择要使用的字符集:通过 WITH_CHARSETWITH_EXTRA_CHARSETS 进行设置,如上述 cmake 示例中设置字符集为 utf8mb4
  • 使用静态编译以提高性能:在 cmake 配置中添加 BUILD_STATIC=YES,但要注意静态编译会增加二进制文件大小,可能会导致内存占用问题。

升级 MySQL

  1. 备份数据:在升级前,务必对数据库进行完整备份,以防数据丢失或损坏。
    mysqldump -u root -p --all-databases > backup.sql
    
  2. 更新软件包
    • RPM 包升级
      sudo rpm -Uvh mysql-community-server-new-version.rpm
      
    • 二进制包升级
      • 停止当前 MySQL 服务。
      • 解压新的二进制包并替换原有的安装目录。
      • 运行升级脚本,如 mysql_upgrade
    • 源码包升级
      • 停止当前 MySQL 服务。
      • 重新编译并安装新的源码包。
      • 运行 mysql_upgrade

MySQL 降级

  • 注意事项:MySQL 降级可能会导致数据不兼容,一般不建议进行。但如果必须降级,需要严格按照以下步骤:
    1. 备份所有数据。
    2. 卸载当前版本。
    3. 安装低版本 MySQL。
    4. 恢复数据,但可能需要处理数据兼容性问题,如修改表结构、数据类型等。

小结 在 Linux 上安装和升级 MySQL 有多种方式,每种方式都有其优缺点。RPM 包适合快速部署,二进制包相对灵活,而源码包可深度定制。在安装源码包时,可以通过参数设置优化性能,去掉不需要的模块和选择合适的字符集。升级

MySQL
时,要确保备份数据,并根据不同的安装方式进行相应的操作。对于降级操作,需谨慎处理,避免数据丢失和不兼容问题。根据实际情况,选择合适的安装和升级方式,并在操作前做好充分准备和测试,以确保系统的稳定和数据安全。

在这里插入图片描述

MySQL 中常用工具

客户端连接工具

  • MySQL Shell
    • 功能:MySQL 官方提供的强大的交互式客户端工具,支持 SQL、JavaScript 和 Python 语言。
    • 示例:
    mysqlsh -u root -p
    
    • 解释:使用 mysqlsh 命令连接 MySQL 数据库,-u 指定用户名,-p 表示输入密码。进入后可以执行 SQL 语句或使用脚本语言进行数据库操作。
    • 优点:支持多种语言,可进行高级脚本编写和管理任务,适用于开发人员和管理员。
  • MySQL Workbench
    • 功能:一个图形化的数据库设计、管理和开发工具,集成了 SQL 开发、数据库建模、服务器管理等功能。
    • 示例:通过 GUI 界面,输入服务器地址、用户名和密码即可连接。
    • 解释:在 GUI 中可以直观地进行数据库操作,包括创建表、执行查询、设计 E-R 图等,还可以进行性能分析和服务器管理。
    • 优点:易于使用,适合初学者和需要可视化操作的用户。

MYISAM 表压缩工具

  • myisampack
    • 功能:压缩 MYISAM 表,减少磁盘空间占用,提高读取性能。
    • 示例:
    myisampack table_name.MYI
    
    • 解释:将 MYISAM 表的数据文件(MYI)进行压缩,压缩后的数据文件将不可写,需要先备份原始数据。

MySQL 管理工具

  • MySQL Administrator
    • 功能:一个 GUI 工具,用于管理 MySQL 服务器,包括用户管理、服务器配置、备份和恢复等。
    • 示例:通过界面操作,输入服务器信息和登录凭证,可管理用户账户、数据库权限等。
    • 解释:方便管理员进行服务器日常管理,可监控服务器状态,进行参数调整和性能优化。
    • 优点:图形化界面,操作直观,功能全面。

日志管理工具

  • mysqlbinlog
    • 功能:用于查看和解析二进制日志文件,对数据库的更改操作进行分析和恢复。
    • 示例:
    mysqlbinlog mysql-bin.000001
    
    • 解释:可以查看二进制日志文件中的事件,对于数据恢复、主从复制的故障排查非常有用。

MYISAM 表维护工具

  • myisamchk
    • 功能:检查、修复和优化 MYISAM 表,确保表的健康状态。
    • 示例:
    myisamchk table_name.MYI
    
    • 解释:可进行表的检查、修复、优化和分析,如 myisamchk -r table_name.MYI 可以修复损坏的表,myisamchk -o table_name.MYI 可以优化表。

数据导出工具

  • mysqldump
    • 功能:将数据库或表的数据和结构导出到 SQL 文件,用于备份和迁移。
    • 示例:
    mysqldump -u root -p database_name > backup.sql
    
    • 解释:将 database_name 的数据和结构导出到 backup.sql 文件,-u 是用户名,-p 表示需要输入密码。
    • 优点:可以导出完整的数据库或部分表,适用于数据备份和迁移。
  • SELECT INTO OUTFILE
    • 功能:将查询结果导出到文件。
    • 示例:
    SELECT * INTO OUTFILE '/path/to/file.csv'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    FROM table_name;
    
    • 解释:将 table_name 的数据以逗号分隔,行以换行符分隔导出到文件中。

MYISAM 表热备份工具

  • mysqlhotcopy
    • 功能:对 MYISAM 表进行热备份,允许在不停止数据库服务的情况下备份表。
    • 示例:
    mysqlhotcopy database_name table_name /path/to/backup
    
    • 解释:将 database_name 中的 table_name 备份到 /path/to/backup 目录下。

数据导入工具

  • mysqlimport
    • 功能:将文本文件导入到 MySQL 数据库,与 LOAD DATA INFILE 类似。
    • 示例:
    mysqlimport -u root -p database_name /path/to/file.txt
    
    • 解释:将文件 /path/to/file.txt 导入到 database_name 中,-u 是用户名,-p 表示输入密码。
  • LOAD DATA INFILE
    • 功能:将文件中的数据加载到表中。
    • 示例:
    LOAD DATA INFILE '/path/to/file.txt'
    INTO TABLE table_name
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n';
    
    • 解释:将文件中的数据按逗号和换行符分隔导入到 table_name 表中。

数据库对象查看工具

  • SHOW 语句
    • 功能:查看数据库对象,如 SHOW DATABASESSHOW TABLESSHOW COLUMNS FROM table_name 等。
    • 示例:
    SHOW DATABASES;
    
    • 解释:显示所有数据库的名称。

perror 错误代码查看工具

  • perror
    • 功能:查看 MySQL 错误代码的详细解释。
    • 示例:
    perror 1062
    
    • 解释:查看错误代码 1062 的含义,方便进行错误排查。

replace 文本替换工具

  • REPLACE 函数
    • 功能:在 SQL 中使用 REPLACE 函数替换表中的文本数据。
    • 示例:
    UPDATE table_name
    SET column_name = REPLACE(column_name, 'old_value', 'new_value');
    
    • 解释:将 table_name 表中 column_name 列的 old_value 替换为 new_value

小结 MySQL 提供了丰富的工具,涵盖了客户端连接、表压缩、管理、日志管理、表维护、数据导出导入、备份、对象查看、错误代码查看和文本替换等多个方面。这些工具可以帮助用户和管理员更方便地使用和管理

MySQL
数据库,不同工具在不同场景下发挥着重要作用,根据具体需求选择合适的工具可以提高工作效率和保证数据库的正常运行。在使用这些工具时,要遵循相应的操作规范,确保数据的安全和系统的稳定。


http://www.kler.cn/a/472180.html

相关文章:

  • Clisoft SOS与CAD系统集成
  • 从零手写缓存框架(二)redis expire 过期原理
  • Fastapi + vue3 自动化测试平台(1)--开篇
  • 接口项目操作图-thinkphp6-rabbitmq
  • 【动手学电机驱动】STM32-MBD(2)将 Simulink 模型部署到 STM32G431 开发板
  • 微信小程序获取图片使用session(上篇)
  • openwebui接入deepseekv3
  • spring boot解决swagger中的v2/api-docs泄露漏洞
  • 你使用过Wireshark抓包工具吗?
  • 【笔记】算法记录
  • 2.STM32F407ZGT6-外部中断
  • 怎么管理电脑usb接口,分享四种USB端口管理方法
  • 自动化之数据库:docker部署mongo,为下一步的使用打下基础
  • MAX3232芯片介绍
  • Elixir语言的并发编程
  • docker对外发布服务,docker compose使用
  • opencv 学习(1)
  • Python 模拟登录网页,或者编写爬虫时模拟登录的详细总结
  • linux 使用 MySQL Performance Schema 和 Prometheus + Grafana 来监控 MySQL 性能
  • ZooKeeper Java API操作