很多开发者在部署老项目或特定环境时,仍需要用到MySQL 5.6版本。相比yum或apt的在线安装,tar包解压安装虽然步骤稍多,但能完全掌控路径和依赖,避免系统自带库冲突。下面直接上干货,手把手教你完成从零到启动的全过程。
安装前请确保服务器是CentOS 7、Ubuntu 18.04或Debian 9等主流Linux发行版,并且已经安装了gcc、g++、make、cmake这些基础编译工具。如果使用的是最小化镜像,先用包管理器把开发套件补全,否则后面初始化会报错。
第一步下载并解压安装包
去官网或者国内镜像站找到mysql-5.6.xx-linux-glibc2.12-x86_64.tar.gz文件。下载完成后,用cd命令进入目标目录,执行tar -zxvf文件名解压。解压后你会看到一个以mysql开头的文件夹,建议把它重命名为mysql,方便后续配置。整个软件包不需要重新编译,解压完就能直接用,这是tar安装最大的优势。
第二步创建专用的数据库用户
出于安全考虑,绝对不能让root账户直接运行数据库服务。执行groupadd mysql新建用户组,再用useradd -r -g mysql -s /bin/false mysql创建系统用户。接着修改数据目录权限,把解压后的mysql文件夹及其子目录的所有者改成mysql:mysql,所属组也设为mysql,权限设置为750或755。这一步做不好,后面启动时会直接报权限拒绝,务必仔细核对。
第三步初始化数据目录
这是最关键的一步。进入mysql目录下的scripts子文件夹,找到mysql_install_db脚本。执行时需要指定basedir和datadir参数,basedir填你实际的安装路径,datadir建议放在/data/mysql或者其他非系统盘位置。命令大概长这样:./mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/data/mysql。执行完后,系统会自动生成存放表结构、日志和临时文件的初始目录,看到两个SUCCESS提示就说明初始化成功。注意5.6版本用的是这个旧脚本,不要误写成新版的大于号语法。
第四步编写配置文件
在etc目录下新建my.cnf文件,或者直接放在解压根目录。核心配置包括basedir、datadir、port、socket、pid-file。字符集强烈建议统一设为utf8mb4,排序规则用utf8mb4_general_ci,防止生僻字乱码。开启binlog日志用于数据恢复,设置innodb_buffer_pool_size为物理内存的百分之五十左右,比如8G内存就设4G。写好保存后,测试一下配置文件是否合法,可以用mysqld --validate-config检查,确保没有拼写错误。
第五步启动服务并设置开机自启
把support-files下的mysql.server脚本复制到/etc/init.d/目录下,命名为mysqld。赋予执行权限后,用service mysqld start命令启动。查看状态如果显示success,说明跑起来了。为了服务器重启不手动敲命令,可以把启动脚本加入chkconfig列表,或者直接写systemd服务文件。5.6版本对systemd支持一般,推荐用传统的init.d方式配合chkconfig on mysqld实现开机自启。
第六步修改密码和开放远程连接
默认情况下root没有密码,直接用mysql命令进数据库后,先执行update user set password=password('新密码') where user='root',然后flush privileges刷新权限。如果想让其他机器访问,改一下host字段从localhost变成%,或者新建一个专门给远程用的账号。防火墙记得放行3306端口,云服务器的安全组也要同步添加规则,否则外网连不上。
遇到启动失败别慌,八成是日志没看。去data目录找.err后缀的文件,里面会有具体的错误堆栈。常见坑包括SELinux拦截、swap分区不足导致初始化卡死、或者之前残留的mysql.sock文件没清理。按日志提示一步步排查,基本都能解决。这套流程跑通后,你的MySQL 5.6环境就稳定就绪了。



