CentOS 7安装MySQL 5.5详细指南
一、前提条件与系统准备
在开始之前,请确保你的CentOS 7系统已经更新到最新状态,打开终端并执行以下命令:
sudo yum update y
二、检查并卸载现有MySQL或MariaDB版本
需要检查系统是否已经安装了其他版本的MySQL或MariaDB,并进行卸载以避免冲突。
1. 检查已安装的MySQL/MariaDB版本
rpm qa | grep i mysql rpm qa | grep i mariadb
卸载现有版本(如有)
sudo yum remove y mysqlserver mysqlcommunityserver mariadblibs mariadb
三、下载MySQL 5.5版本
由于MySQL 5.5是一个较旧的版本,你需要从MySQL官方网站的归档中手动下载RPM包。
访问[MySQL官方下载地址](https://dev.mysql.com/downloads/mysql/),选择适合你的系统架构的RPM包进行下载。
wget https://downloads.mysql.com/archives/get/file/mysql5.5.62linux2.6x86_64.tar.gz
将下载的文件解压到一个合适的位置,比如/usr/local/
:
tar zxvf mysql5.5.62linux2.6x86_64.tar.gz C /usr/local/ cd /usr/local/mysql
四、初始化MySQL数据库
在进行初始化之前,建议创建一个新的用户和组来运行MySQL服务,以增强安全性。
sudo groupadd mysql sudo useradd r g mysql s /bin/false mysql cd /usr/local/mysql sudo scripts/mysql_install_db user=mysql
注意:上面的命令假设你已经解压了MySQL 5.5,并且当前目录是解压后的MySQL根目录。
五、配置MySQL服务
为了能够像现代Linux发行版那样管理MySQL服务,我们需要创建一个systemd服务单元文件。
创建MySQL服务目录和配置文件
sudo mkdir /etc/my.cnf.d sudo touch /etc/my.cnf.d/mysqlserver.cnf
编辑MySQL配置文件
使用你喜欢的文本编辑器(如vi或nano)编辑/etc/my.cnf.d/mysqlserver.cnf
文件,添加以下内容:
[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 socket = /usr/local/mysql/mysql.sock user = mysql Disabling symboliclinks is recommended to prevent assorted security risks symboliclinks=0
创建systemd服务单元文件
sudo vi /etc/systemd/system/mysqld.service
添加以下内容:
[Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/usr/local/mysql/bin/mysqld_safe user=mysql ExecStop=/usr/local/mysql/supportfiles/mysqladmin shutdown Restart=onabort [Install] WantedBy=multiuser.target
4. 重新加载systemd配置并启动MySQL服务
sudo systemctl daemonreload sudo systemctl start mysqld sudo systemctl enable mysqld
六、设置root用户密码和安全配置
首次安装后,需要为root用户设置密码,并进行一些基本的安全配置。
临时修改认证插件(可选,但推荐)
由于MySQL 5.5默认使用mysql_native_password
认证插件,你可能希望将其更改为更安全的caching_sha2_password
(如果你打算升级到更高的MySQL版本),但在初次安装时,建议保持默认设置以避免潜在问题。
登录MySQL并设置root密码
sudo /usr/local/mysql/bin/mysql u root
在MySQL提示符下执行:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
配置远程访问(如果需要)
编辑/etc/my.cnf.d/mysqlserver.cnf
文件,注释掉bindaddress = 127.0.0.1
这一行,或者将其设置为服务器的IP地址或0.0.0.0
以允许所有IP访问,然后重启MySQL服务:
sudo systemctl restart mysqld
开放防火墙端口(如果启用了防火墙)
sudo firewallcmd permanent addport=3306/tcp sudo firewallcmd reload
七、常见问题排查与FAQs
Q1: 无法连接到MySQL数据库怎么办?
A1: 首先检查MySQL服务是否正在运行:sudo systemctl status mysqld
,如果服务未运行,尝试启动它:sudo systemctl start mysqld
,如果服务正常运行,但仍然无法连接,检查防火墙设置和my.cnf
中的绑定地址配置,确保你使用的是正确的用户名和密码,以及正确的主机名(对于远程连接)。
Q2: 如何备份和恢复MySQL数据库?
A2: 备份可以通过mysqldump
工具实现,备份所有数据库:mysqldump u root p alldatabases > alldb_backup.sql
,恢复数据库可以使用mysql
命令:mysql u root p < alldb_backup.sql
,确保在恢复之前创建必要的数据库和表结构。