CentOS 安装 MySQL 5.6
一、前言
在 CentOS 上安装 MySQL 5.6 是一个常见的任务,尤其对于需要特定版本进行兼容性测试或老项目维护的情况,本文将详细介绍如何在 CentOS 系统上安装和配置 MySQL 5.6,包括安装前准备、安装步骤、配置优化以及常见问题解决。

二、安装前准备
1. 系统信息检查与更新
确保你的 CentOS 系统是最新的,并且具有必要的软件包,执行以下命令来更新系统:
sudo yum update y
2. 检查现有 MySQL 版本
如果系统中已经安装了其他版本的 MySQL,建议先卸载以避免冲突:
rpm qa | grep mysql sudo yum remove mysql* y
3. 安装依赖包
MySQL 5.6 需要一些基础库和工具,执行以下命令来安装这些依赖:

sudo yum install y libaio libaiodevel perlTimeHiRes curl curldevel zlibdevel openssldevel perl cpio expatdevel gettextdevel perlExtUtilsMakeMaker perlDBDMySQL
三、下载并安装 MySQL 5.6
1. 创建用户和目录
MySQL 需要一个专用用户来运行服务,并且需要一个数据目录来存储数据库文件:
sudo groupadd mysql sudo useradd r g mysql s /bin/false mysql sudo mkdir /usr/local/mysql sudo mkdir /usr/local/mysql/data sudo chown R mysql:mysql /usr/local/mysql
2. 下载 MySQL 5.6
从 MySQL 官方网站下载所需版本的源码包:
cd /tmp wget https://dev.mysql.com/get/Downloads/MySQL5.6/MySQL5.6.49.tar.gz
3. 解压源码包
tar zxvf MySQL5.6.49.tar.gz cd MySQL5.6.49
4. 编译和安装 MySQL

执行以下命令进行编译和安装:
cmake \ DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ DMYSQL_DATADIR=/usr/local/mysql/data \ DSYSCONFDIR=/etc \ DWITH_MYISAM_STORAGE_ENGINE=1 \ DWITH_INNOBASE_STORAGE_ENGINE=1 \ DWITH_MEMORY_STORAGE_ENGINE=1 \ DWITH_READLINE=1 \ DWITH_PARTITION_STOREGE=1 \ DEXTRA_CHARSETS=all \ DDEFAULT_CHARSET=utf8 \ DDEFAULT_COLLATION=utf8_general_ci \ DMYSQL_USER=mysql \ DWITH_DEBUG=0 \ DWITH_SSL=system make && make install
5. 初始化数据库
使用以下命令初始化 MySQL 数据库:
cd /usr/local/mysql sudo scripts/mysql_install_db user=mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data
6. 设置权限和开机自启动
sudo chown R mysql:mysql /usr/local/mysql sudo chown R mysql:mysql /usr/local/mysql/data sudo cp supportfiles/mysql.server /etc/init.d/mysqld sudo chmod +x /etc/init.d/mysqld sudo chkconfig mysqld on
四、配置和优化 MySQL
1. 复制配置文件模板
将默认配置文件复制到/etc 目录下:
sudo cp supportfiles/mydefault.cnf /etc/my.cnf
2. 编辑配置文件
根据需求编辑/etc/my.cnf,例如设置字符集、端口等:
[client] port = 3306 defaultcharacterset=utf8 [mysqld] port = 3306 charactersetserver = utf8 collationserver = utf8_general_ci datadir = /usr/local/mysql/data socket = /usr/local/mysql/mysql.sock user = mysql 根据服务器硬件资源调整以下参数 innodb_buffer_pool_size = 1G innodb_log_file_size = 256M max_connections = 1000
3. 启动 MySQL 服务
sudo service mysqld start
4. 设置 root 用户密码
首次登录时需要设置 root 用户的密码:
sudo /usr/local/mysql/bin/mysqladmin u root password 'new_password'
5. 远程访问配置(可选)
编辑/etc/my.cnf,注释掉绑定地址限制行,或者将其设置为0.0.0.0:
[mysqld] ... bindaddress = 127.0.0.1 # 取消注释并修改为0.0.0.0以允许远程访问 ...
重启 MySQL 服务使配置生效:
sudo service mysqld restart
注意:为了安全性,请确保防火墙规则允许 MySQL 端口(默认是3306)的通信:
sudo firewallcmd permanent addport=3306/tcp sudo firewallcmd reload
五、常见问答(FAQs)
Q1: 如何更改 MySQL 默认编码?
A1: 在/etc/my.cnf 中添加或修改以下内容:
[client] defaultcharacterset=utf8 [mysql] defaultcharacterset=utf8 [mysqld] charactersetserver=utf8 collationserver=utf8_general_ci
然后重启 MySQL:
sudo service mysqld restart
Q2: 忘记 root 密码怎么办?
A2: 可以通过跳过授权表的方式重置密码,停止 MySQL 服务,然后在启动时添加skipgranttables 参数:
sudo service mysqld stop sudo /usr/local/mysql/bin/mysqld_safe skipgranttables &
进入 MySQL:
sudo /usr/local/mysql/bin/mysql u root
选择mysql 数据库并更新root 用户的密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; \q
停止 MySQL 并重新启动正常模式:
sudo service mysqld stop sudo service mysqld start
