如何安装MySQL二进制包

发布时间:2021-10-09 16:53:00 作者:iii
来源:亿速云 阅读:200
# 如何安装MySQL二进制包

## 前言

MySQL作为全球最流行的开源关系型数据库管理系统,被广泛应用于各种规模的业务场景。与源码编译安装相比,二进制包安装具有明显的优势:无需复杂的编译环境配置、安装过程快速、降低了依赖问题的风险。本文将详细介绍在Linux系统下通过官方二进制包安装MySQL的完整流程,涵盖从准备工作到安全加固的全过程。

## 一、安装前的准备工作

### 1.1 系统环境检查

在开始安装前,需要确认系统是否符合MySQL的运行要求:

```bash
# 检查操作系统版本
cat /etc/os-release

# 检查内存和存储空间
free -h
df -h

# 检查CPU架构
uname -m

建议的最低配置: - 内存:2GB以上(生产环境建议8GB+) - 磁盘空间:至少5GB可用空间 - 操作系统:主流Linux发行版(CentOS/RHEL 7+, Ubuntu 18.04+等)

1.2 依赖包安装

MySQL二进制包需要一些基础系统库的支持:

# CentOS/RHEL系统
sudo yum install -y libaio numactl-libs ncurses-compat-libs

# Ubuntu/Debian系统
sudo apt-get install -y libaio1 libnuma1 libncurses5

1.3 创建MySQL用户和组

为MySQL服务创建专用用户:

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

1.4 下载MySQL二进制包

访问MySQL官方下载页面(https://dev.mysql.com/downloads/mysql/)选择适合的版本:

# 示例:下载MySQL 8.0.33通用Linux版本
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.17-x86_64.tar.xz

# 验证文件完整性(可选)
md5sum mysql-8.0.33-linux-glibc2.17-x86_64.tar.xz

二、安装MySQL二进制包

2.1 解压安装包

选择适当的安装目录(通常为/usr/local):

sudo tar xvf mysql-8.0.33-linux-glibc2.17-x86_64.tar.xz -C /usr/local

# 创建符号链接方便版本管理
cd /usr/local
sudo ln -s mysql-8.0.33-linux-glibc2.17-x86_64 mysql

2.2 设置目录权限

cd mysql
sudo chown -R mysql:mysql .
sudo chmod -R 750 .

2.3 初始化数据目录

MySQL 8.0推荐使用--initialize-insecure--initialize

sudo bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注意: - --initialize-insecure会创建空密码的root账户 - --initialize会生成随机密码(查看错误日志获取)

2.4 配置SSL和RSA文件(可选)

sudo bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

三、配置MySQL服务

3.1 创建配置文件my.cnf

sudo tee /etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock

# 网络配置
port=3306
bind-address=0.0.0.0

# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 其他优化参数
max_connections=200
innodb_buffer_pool_size=256M
EOF

3.2 设置环境变量

echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

3.3 创建systemd服务单元

sudo tee /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65535
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

3.4 启动MySQL服务

sudo systemctl daemon-reload
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 检查服务状态
systemctl status mysqld

四、安全设置与初始化配置

4.1 修改root密码

# 如果使用--initialize-insecure初始化
mysqladmin -u root password 'new_password'

# 如果使用--initialize初始化
# 从错误日志中获取临时密码
grep 'temporary password' /usr/local/mysql/data/error.log
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

4.2 运行安全脚本

mysql_secure_installation

该脚本会引导完成以下安全设置: - 更改root密码 - 移除匿名用户 - 禁止root远程登录 - 移除测试数据库 - 重新加载权限表

4.3 创建管理用户(可选)

CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

五、验证安装

5.1 基本连接测试

mysql -u root -p -e "SELECT VERSION();"

5.2 检查关键参数

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'character_set_server';
SHOW ENGINES;

5.3 性能测试(可选)

# 使用sysbench进行简单测试
sysbench oltp_read_write --db-driver=mysql --mysql-user=root --mysql-password=your_password prepare
sysbench oltp_read_write --db-driver=mysql --mysql-user=root --mysql-password=your_password run

六、常见问题解决

6.1 启动失败排查

  1. 检查错误日志:

    tail -n 100 /usr/local/mysql/data/error.log
    
  2. 常见问题:

    • 端口冲突:Address already in use
    • 权限问题:Can't create/write to file
    • 依赖缺失:error while loading shared libraries

6.2 忘记root密码

  1. 停止MySQL服务:

    systemctl stop mysqld
    
  2. 使用–skip-grant-tables启动:

    mysqld_safe --skip-grant-tables &
    
  3. 重置密码:

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

6.3 字符集问题

如果出现中文乱码:

-- 检查当前字符集设置
SHOW VARIABLES LIKE 'character%';

-- 永久解决方案需修改my.cnf
[client]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

七、性能优化建议

7.1 内存配置

# 根据服务器内存调整
innodb_buffer_pool_size = 总内存的50-70%
key_buffer_size = 32M
query_cache_size = 0  # MySQL 8.0已移除查询缓存

7.2 日志配置

# 错误日志
log_error = /var/log/mysql/error.log

# 慢查询日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

# 二进制日志(主从复制需要)
server-id = 1
log_bin = /var/log/mysql/mysql-bin
binlog_format = ROW

7.3 连接管理

max_connections = 500
wait_timeout = 300
interactive_timeout = 300

八、备份与恢复

8.1 使用mysqldump

# 完整备份
mysqldump -u root -p --all-databases > full_backup.sql

# 单库备份
mysqldump -u root -p database_name > db_backup.sql

# 恢复数据
mysql -u root -p < full_backup.sql

8.2 二进制日志备份

-- 查看当前二进制日志状态
SHOW MASTER STATUS;

-- 定期执行日志轮转
FLUSH BINARY LOGS;

九、升级与卸载

9.1 升级MySQL版本

  1. 备份所有数据
  2. 停止当前服务
  3. 安装新版本二进制包
  4. 使用mysql_upgrade工具:
    
    mysql_upgrade -u root -p
    

9.2 完全卸载MySQL

  1. 停止服务:

    systemctl stop mysqld
    
  2. 删除文件:

    rm -rf /usr/local/mysql*
    rm -rf /etc/my.cnf
    rm -rf /etc/systemd/system/mysqld.service
    
  3. 删除用户:

    userdel mysql
    groupdel mysql
    

结语

通过二进制包安装MySQL是一种高效可靠的方式,特别适合生产环境部署。本文详细介绍了从准备到配置的完整流程,包括安全设置、性能优化等进阶内容。实际部署时,建议根据具体业务需求调整配置参数,并建立完善的监控和备份机制。

附录

A. 常用命令参考

# 服务管理
systemctl start|stop|restart|status mysqld

# 进程查看
ps -ef | grep mysql

# 连接检查
netstat -tulnp | grep 3306
mysqladmin -u root -p ping

B. 推荐阅读

  1. MySQL 8.0官方文档:https://dev.mysql.com/doc/refman/8.0/en/
  2. MySQL性能优化指南
  3. 高可用架构设计

C. 版本更新说明

”`

推荐阅读:
  1. Linux下通用二进制安装包安装MySQL-5.7.17
  2. 怎么用二进制包安装mysql

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 数据库

上一篇:MySQL索引机制有哪些

下一篇:如何进行Python3入门机器学习的经典算法与应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》