特别是MySQL 5.7版本,不仅提升了性能,还引入了许多新特性,如JSON数据类型、原生支持生成列、更好的全文索引支持等,使得其在企业级应用中更加受欢迎
本文将详细介绍如何在Linux环境下,通过二进制包的方式部署MySQL 5.7,确保你能够高效、准确地完成这一任务
一、前期准备 1. 系统环境 在部署之前,请确保你的服务器满足以下基本要求: 操作系统:Linux(本文以CentOS 7为例) 内存:至少2GB 硬盘:有足够的空间存放MySQL数据文件和日志文件 网络:能够访问外网下载MySQL二进制包和相关依赖 2. 用户权限 部署MySQL需要以root用户或具有sudo权限的用户身份进行操作,以确保有足够的权限来创建用户、修改目录权限等
3. 下载MySQL二进制包 你可以从MySQL官方网站下载对应版本的二进制包
例如,MySQL 5.7.44版本的下载地址为:【MySQL 5.7下载页面】(https://dev.mysql.com/downloads/mysql/5.7.htmldownloads)
选择适合你系统的二进制包进行下载,通常文件名为`mysql-5.7.xx-linux-glibc2.12-x86_64.tar.gz`
二、安装步骤 1. 创建MySQL用户和组 为了安全起见,MySQL通常不会以root用户运行
因此,我们需要创建一个专门的MySQL用户和组
bash groupadd mysql useradd -r -g mysql -s /bin/false mysql 2. 解压MySQL二进制包 将下载的二进制包解压到指定目录,例如`/usr/local/mysql`
bash tar zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ mv /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql 3. 设置目录权限 确保MySQL目录和其中的文件属于mysql用户和组
bash chown -R mysql:mysql /usr/local/mysql 4. 创建数据目录和日志目录 MySQL需要专门的数据目录来存储数据库文件,以及日志目录来存放日志文件
bash mkdir -p /var/lib/mysql/data mkdir -p /var/lib/mysql/logs chown -R mysql:mysql /var/lib/mysql 5. 配置MySQL 创建MySQL配置文件`my.cnf`,通常放在`/etc/my.cnf`或`/usr/local/mysql/my.cnf`
以下是一个示例配置: ini 【mysqld】 server-id = 1 basedir = /usr/local/mysql datadir = /var/lib/mysql/data port = 3306 socket = /var/lib/mysql/mysql.sock max_connections = 1000 slow_query_log = 1 slow_query_log_file = /var/lib/mysql/logs/slow_queries.log long_query_time = 0.6 log_bin = mysql-bin binlog_format = ROW expire_logs_days = 2 log_error = /var/lib/mysql/logs/error.log 【client】 socket = /var/lib/mysql/mysql.sock 根据你的实际需求,调整上述配置中的参数
6. 初始化数据库 在MySQL 5.7中,初始化数据库不再使用`mysql_install_db`命令,而是使用`mysqld --initialize`
bash /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql/data --explicit_defaults_for_timestamp 初始化成功后,会在日志文件中生成一个临时密码,用于首次登录MySQL
你可以在`/var/lib/mysql/logs/error.log`文件中找到这个密码
7. 启动MySQL服务 为了方便管理,可以将MySQL服务添加到系统服务管理中
以Systemd为例,创建MySQL服务文件`/etc/systemd/system/mysql.service`: ini 【Unit】 Description=MySQL Server After=network.target 【Service】 User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf PIDFile=/var/lib/mysql/data/mysql.pid 【Install】 WantedBy=multi-user.target 然后,重载Systemd并启动MySQL服务: bash systemctl daemon-reload systemctl start mysql systemctl enable mysql 8. 配置环境变量 为了方便在命令行中访问MySQL,可以将MySQL的bin目录添加到PATH环境变量中
编辑`/etc/profile`文件,在最后一行添加: bash export PATH=$PATH:/usr/local/mysql/bin 然后,执行`source /etc/profile`使改动生效
9. 修改root密码 首次登录MySQL时,需要使用初始化时生成的临时密码
登录后,立即修改root密码: sql ALTER USER root@localhost IDENTIFIED BY new_password; FLUSH PRIVILEGES; 将`new_password`替换为你希望设置的新密码
三、后续配置与优化 1. 配置防火墙 确保防火墙允许MySQL的默认端口(3306)的访问
在CentOS 7中,可以使用`firewalld`进行配置: bash firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload 2. 配置远程访问 如果需要从远程访问MySQL,需要修改`my.cnf`文件中的`bind-address`参数,将其设置为`0.0.0.0`或具体的服务器IP地址,并确保防火墙允许相应端口的访问
同时,还需要在MySQL用户表中为远程用户授予访问权限
3. 定期备份 定期备份数据库是保障数据安全的重要手段
可以使用MySQL自带的`mysqldump`工具进