安装
安装依赖包
yum install -y gcc gcc-c++ cmake ncurses ncurses-devel bison
下载相应源码包
mysql5.7 编译安装需要boost 库,这里官网下载含boost的源码包
这里提供下载地址
https://downloads.mysql.com/archives/community/
添加用户
useradd -s /sbin/nologin mysql
建立所需目录并更改所有者为mysql
mkdir -p /home/mysqldata
chown -R mysql:mysql /home/mysqldata
将下载好的mysql 解压到/usr/local/mysql 目录下
tar -zxvf mysql-boost-5.7.28.tar.gz -C /usr/local/mysql/
切换到/usr/local/mysql/mysql-5.7.28/ 目录下,编译安装
cd /usr/local/mysql/mysql-5.7.28/
cmake -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_bin -DW
make && make install
安装好后的/usr/local/mysql 目录结构
配置
编辑/etc/my.cnf ( 如果没有则创建)
web01(我的主机)mysql主库配置文件内容如下
[root@cq13 admin]# cat /etc/my.cnf
[client]
port = 3349
socket = /usr/local/mysql/tmp/mysql.sock
default-character-set = utf8mb4
[mysqld]
user = mysql
port = 3349
basedir = /usr/local/mysql
datadir = /home/mysqldata
tmpdir = /usr/local/mysql/tmp
socket = /usr/local/mysql/tmp/mysql.sock
pid-file = /usr/local/mysql/tmp/mysql.pid
character_set_server = utf8mb4
collation_server = utf8mb4_bin
default-time-zone = system
#开启binlog日志
log-bin = /home/mysqldata/logs/mysql-bin.log
server-id = 13
#日志的保存时间
expire_logs_days = 10
#日志的最大大小
max_binlog_size = 500M
[mysqld_safe]
log-error = /home/mysqldata/logs/mysql.err
[mysqldump]
user = root
password = ***** ##自己设置密码
web02(我的备机)mysql从库配置文件内容如下
[admin@cq14 ~]$ cat /etc/my.cnf
[client]
port = 3349
socket = /usr/local/mysql/tmp/mysql.sock
default-character-set = utf8mb4
[mysqld]
user = mysql
port = 3349
basedir = /usr/local/mysql
datadir = /home/mysqldata
tmpdir = /usr/local/mysql/tmp
socket = /usr/local/mysql/tmp/mysql.sock
pid-file = /usr/local/mysql/tmp/mysql.pid
character_set_server = utf8mb4
collation_server = utf8mb4_bin
default-time-zone = system
server-id = 14
expire_logs_days = 10
max_binlog_size = 500M
[mysqld_safe]
log-error = /home/mysqldata/logs/mysql.err
创建配置文件中需要的目录,将目录用户和组更改为mysql
以下都是主从相同的操作
mkdir -p /usr/local/mysql/tmp
chown -R mysql:mysql /usr/local/mysql/
注:/home/mysqldata目录下一定要为空才行
cd /usr/local/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysqldata/
注:到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/home/mysqldata 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一直才行。
拷贝可执行配置文件
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
注:有些网友文章在这一步中会写到从/usr/local/mysql/support-files 这个目录复制my-default.cnf 到/etc/下作为my.cnf 配置文件,我这里没有这个文件,所以直接在配置环节,自己配置了一个my.cnf文件。
创建日志文件目录
mkdir -p /home/mysqldata/logs/
touch /home/mysqldata/logs/mysql.err
chown -R mysql:mysql /home/mysqldata/
启动
service mysqld start
测试连接不用密码直接回车
cd /usr/local/mysql/bin/
./mysql -hlocalhost -uroot -p
测试连接无需密码即可连接成功
修改环境变量
在/etc/profile 中新增一行
PATH=/usr/local/mysql/bin:$PATH
保存退出,永久生效
source /etc/profile
设置开机自启动
systemctl enable mysqld
至此mysql安装完毕,
高可用搭建见另一篇博客MySQL高可用主从搭建