温馨提示×

温馨提示×

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

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

如何安装MySQL二进制包

发布时间:2021-10-09 16:53:00 来源:亿速云 阅读:218 作者:iii 栏目:数据库
# 如何安装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. 版本更新说明

  • 2023-07-20:初稿,基于MySQL 8.0.33
  • 2023-07-25:添加安全配置章节

”`

向AI问一下细节

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

AI