本文将详细介绍如何在Linux系统中,从下载二进制包开始,逐步完成MySQL的安装、配置和启动
无论你是系统管理员还是数据库开发者,本文都将为你提供一个全面、详细的操作指南
一、为什么选择二进制包安装MySQL? 二进制包是经过源码编译后,解压即可用的安装包
相比于RPM包和源码包,官方更推荐在生产环境中使用二进制包安装MySQL,原因如下: 1.安装路径可控:使用二进制包安装,你可以自由选择安装路径,避免了与系统其他组件的潜在冲突
2.安装过程简单:相比于源码包,二进制包安装省去了编译步骤,大大简化了安装流程
3.功能性与性能优势:二进制包通常经过官方优化,提供了最佳的功能性和性能表现
4.安全性:官方提供的二进制包经过严格的安全测试,确保了安装过程的安全性
二、系统环境准备 在安装MySQL之前,你需要对系统环境进行一些准备工作
1.查看系统架构类型: 使用`uname -m`命令查看系统架构类型
例如,你可能会得到`x86_64`这样的输出,表示你的系统是64位架构
2.查看glibc版本: 使用`ldd --version | grep libc`命令查看glibc版本
glibc是GNU C Library的缩写,是Linux系统中的一个基础库
确保你的glibc版本与MySQL二进制包兼容
3.检查并卸载已安装的MySQL或MariaDB: 使用`rpm -qa | grep mysql`和`rpm -qa | grep mariadb`命令检查系统中是否已安装MySQL或MariaDB
如果已安装,你需要卸载它们,以避免与新安装的MySQL产生冲突
使用`rpm -e <软件包名`命令卸载软件包,如果需要强制卸载,可以使用`rpm -e --nodeps <软件包名`命令
三、下载并安装MySQL二进制包 1.下载MySQL二进制包: 访问MySQL官方网站(如【MySQL下载页面】(https://downloads.mysql.com/archives/community/))下载合适的二进制安装包
根据你的系统架构和glibc版本选择合适的安装包
例如,你可能会下载一个名为`mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz`的安装包
2.上传并解压安装包: 将下载的安装包上传到服务器上的某个目录,例如`/opt`目录
然后使用`tar`命令解压安装包,并可选地对解压后的目录进行重命名
例如: bash cd /opt tar -xvJf mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz mv mysql-8.4.3-linux-glibc2.28-x86_64 mysql-8.4.3 四、配置MySQL 1.创建数据目录和日志目录: 创建一个专门用于存放MySQL数据和日志的目录
例如,你可以创建`/data/mysql/data`作为数据目录,创建`/data/mysql/log`作为日志目录
2.添加my.cnf配置文件: 在`/etc`目录下添加MySQL的配置文件`my.cnf`
配置文件的内容如下: ini 【mysqld】 user=root port=13306 basedir=/opt/mysql-8.4.3 datadir=/data/mysql/data max_connect_errors=10 character-set-server=utf8mb4 default-storage-engine=INNODB general_log =1 general_log_file = /data/mysql/log/mysql.log slow_query_log =1 slow_query_log_file = /data/mysql/log/slow.log long_query_time =2 log_error = /data/mysql/log/error.log server_id =1 log_bin = /data/mysql/log/mysql-bin log_bin_index=/data/mysql/log/mysql-bin.index binlog_format=MIXED binlog_expire_logs_seconds =604800 max_binlog_size=500M 【mysql】 default-character-set=utf8mb4 【client】 default-character-set=utf8mb4 这个配置文件包含了MySQL服务器的基本设置,如启动用户、端口号、安装目录、数据目录、字符集等
同时,还配置了查询日志、慢查询日志、错误日志以及二进制日志等
3.初始化数据库: 执行MySQL bin目录下的`mysqld`文件,初始化数据库
使用以下命令: bash cd /opt/mysql-8.4.3/bin ./mysqld --initialize --user=root --basedir=/opt/mysql-8.4.3 --datadir=/data/mysql/data 初始化成功后,你可以在初始化日志中获取临时密码
如果终端没有输出日志,你可以在配置文件中指定的错误日志文件中查找
4.启动MySQL服务: 执行MySQL support-files目录下的`mysql.server`脚本,启动数据库服务
使用以下命令: bash cd /opt/mysql-8.4.3/support-files ./mysql.server start 你也可以使用`./mysql.server stop`命令停止数据库服务,使用`./mysql.server`命令查看支持的参数
五、配置环境变量并优化启动方式 1.添加MySQL bin目录到全局环境变量: 编辑`/etc/profile`文件,在文件最后添加以下语句: bash export PATH=$PATH:/opt/mysql-8.4.3/bin 然后执行`source /etc/profile`命令使配置立即生效
2.将mysql.server脚本拷贝到/etc/init.d目录下: 为了方便使用`systemctl`命令启动和停止MySQL服务,你可以将`mysql.server`脚本拷贝到`/etc/init.d`目录下
但是请注意,这种方式可能需要重启服务器才能使`systemctl`识别新的服务
使用以下命令: bash cp /opt/mysql-8.4.3/support-files/mysql.server /etc/init.d/ systemctl start mysql systemctl stop mysql 如果在拷贝脚本后无法直接使用`systemctl`命令启动服务,你可以尝试重启服务器或者创建systemd服务配置文件来解决问题
六、登录MySQL并修改密码 1.登录MySQL: 使用`mysql -uroot -p`命令登录MySQL服务,然后输入初始化时生成的临时密码
2.修改root密码: 登录成功后,你可以使用以下SQL语句修改root密码: sql ALTER USER root@localhost IDENTIFIED BY 新密码; 3.允许远程登录(可选): 如果你需要允许root用户从远程登录MySQL,你可以使用以下SQL语句更新用户表中的host字段: sql USE mysql; UPDATE user SET host=% WHERE user=root; FLUSH PRIVILEGES; 这样设置后,root用户就可以从任何IP地址登录MySQL了
但是请注意,出于安全考虑,生产环境中通常不建议这样做
你可以根据需要为特定的IP地址或用户授予远程访问权限
七、其他注意事项 1.防火墙设置: 确保你的防火墙允许MySQL服务的端口(默认是3306,但你在配置文件中可能已更改为其他端口)进行通信
如果你使用的是`firewalld`服务,你可以使用以下命令开放端口: bash firewall-cmd --zone=public --add-port=13306/tcp --permanent firewall-cmd --reload 2.备份与恢复: 定期备份MySQL数