Linux下的MySQL二进制安装全方位教程

silverwq
2022-06-02 / 0 评论 / 386 阅读 / 正在检测是否收录...

概述

mysql安装有很多种方式,有yum安装,编译安装、二进制安装等,本教程是二进制安装教程。本教程适用于5.6和5.7版本安装​,因为很多linux系统自带mysql,所以在安装之前要删除旧的mysql文件,包括配置文件等​。

例如,现在很多centos自带MariaDB

# 查看是否有安装
rpm -qa | grep mariadb
# 卸载,后面跟的是具体的名称
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

为了确保删除干净,执行下面

# 卸载mariadb,同时也卸载了mariadb-server
yum remove mariadb 
# 发现在安装mariadb时作为依赖项的mariadb-libs没有被删除。
yum list installed | grep mariadb 
# 将其卸载
yum remove mariadb-libs 
rm -rf /etc/my.cnf
# 删除所有包含mysql的文件(夹)
rm -rf $(find / -name mysql) 

libaio依赖库安装

MySQL 依赖于该libaio 库,所以需要先安装​:

yum search libaio  # search for info
yum install libaio # install library

libtinfo.so.5扩展

MySQL 5.6.37开始,mysql客户端依赖libtinfo.so.5扩展​。

64位操作系统:查看下/lib64/目录下是否有这个扩展​,如果没有,则执行以下命令创建软链,libncurse5版本的应该都可以,5.6版本不一定非要

ln -s /lib64/libncurses.so.5.6 /lib64/libtinfo.so.5

32位操作系统:查看下/lib/目录下是否有这个扩展​,如果没有,则执行以下命令创建软链,libncurse5版本的应该都可以,5.6版本不一定非要

ln -s /lib/libncurses.so.5.6 /lib/libtinfo.so.

详细教程可以查看:https://dev.mysql.com/doc/refman/5.6/en/binary-installation.html

二进制安装

首先安装我们选择的是二进制安装方式,不选择编译安装​,因为官方编译好的二进制已经是最优的编译了,没必要自己编译​,然后下载二进制包就好了​。

基本配置

然后创建/etc/mysql.cnf配置文件​,写入以下最基础的配置,在这个位置配置有个好处,如果有多实例,可以共享配置​。

[mysqld]
port = 3306
user = mysql
# 初始化数据库的时候,安装到指定目录,数据的目录最好是单独,好备份
datadir = /mydata/mysql_data
# 启动的时候可以用于排查错误,相对于数据库目录
log_error = error.log

然后执行以下命令,添加mysql组和不可登录的用户​,通常mysql数据库的权限是mysql:mysql

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

然后创建数据库目录​

mkdir -p /mydata/mysql_data
# 数据库目录的权限需要是mysql
chown -R mysql:mysql /mydata/mysql_data

下载安装

然后解压下载好的安装包,解压到到/usr/local目录​

cd /usr/local
tar zxvf /path/to/mysql-VERSION-OS.tar.gz
# 安装目录必须是root,防止被入侵修改
chown -R root:root /path/to/mysql-VERSION-OS

然后在/usr/local目录创建mysql软链​,/usr/local/mysql目录是msyql.server、mysqld_multi等众多shell脚本默认的mysql安装目录,直接安装在这个目录的话,就不需要去修改这些脚本中的basedir配置值​

ln -s full-path-to-mysql-VERSION-OS mysql

然后进入mysql目录​

cd mysql

如果是MySQL5.7要执行这个步骤,如果是5.6,则跳过​

mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

初始化数据库

接下来初始化数据库,如果是5.6版本执行下面,默认密码为空,登录后设置一下密码:set password = password('03203511')

# 默认root账号没有密码
scripts/mysql_install_db --user=mysql

5.7版本初始化数据的两种方式​,登录后设置一下密码:set password = '03203511';

# 默认root账号的密码在**error.log文件**里
bin/mysqld --initialize --user=mysql
# 或者跟5.6版本一样,为root账号创建空密码
bin/mysqld --initialize-insecure --user=mysql

ssl连接支持

如果是5.7版本安装,安装ssl连接支持(MySQL5.7要执行这个步骤,如果是5.6,则跳过)​,在/mydata/mysql_data数据目录下会多出*.pem的公密钥文件,并且这些文件的所有者所属组是mysql​,如果客户端需要ssl连接的话,需要将产生的client*.pem文件给到客户端​

bin/mysql_ssl_rsa_setup

启动

现在就可以启动mysqld了,mysqld_safe shell脚本会管理mysqld进程,如果mysqld挂了,会自动启动​,&标识后台方式启动​

bin/mysqld_safe --user=mysql &

最后添加到服务即可

cp support-files/mysql.server /etc/init.d/mysql.server
0

评论 (0)

取消