MySQL5.7 For CentOS 7.6 源码编译安装实战
- 作者:云贝学院
- 发布时间:2024-01-15 17:28
- 浏览量:1139
1.安装前的准备
1) 关闭防火墙修改SELinux
vim /etc/selinux/config
SELINUX=disabled
2)关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
3)安装MySQL所需要的工具
yum install \
vim \
git \
gcc \
gcc-c++ \
wget \
make \
cmake \
automake \
autoconf \
libaio \
libtool \
net-tools \
bison \
bison-devel \
libaio-devel \
ncurses-devel \
perl-Data-Dumper \
-y
4)检查操作系统上是否安装了MySQL
rpm -qa |grep mysql
yum remove mysql-libs
5)下载源码安装包
cd /apps/rpm
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27.tar.gz
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
2.添加用户和组:
groupadd apps
useradd -d /home/apps -g apps -m apps
passwd apps123
3.创建目录及授权
mkdir -p /apps/conf/mysql #config目录
mkdir -p /apps/dbdat/mysql57_3306 #dbdata目录
mkdir -p /apps/binlog/mysql57_3306 #binlog目录
mkdir -p /apps/logs/mysql #log目录
mkdir -p /apps/svr/mysql57 #binary目录
mkdir -p /apps/tmp
mkdir -p /apps/run
mkdir -p /apps/sh/tool
mkdir -p /apps/rpm
chown -R apps:apps /apps
chmod -R 755 /apps
4.配MySQL环境变量
vi /etc/profile
export LANG=en_US.UTF-8
export PATH=$PATH:/usr/sbin
export PATH=$PATH:/apps/svr/mysql57/bin
export PATH=$PATH:/apps/sh/tool/
export MYSQL_HISTFILE=/dev/null
> ~/.mysql_history
/bin/bash /apps/sh/log_name.sh
5.解压
cd /apps/rpm/
tar -xzvf boost_1_59_0.tar.gz
cd /apps/rpm
tar -xzvf mysql-5.7.27.tar.gz
6.进入解压完的mysql-5.7.27目录,编译源码并生成makefile。
编译并安装
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/svr/mysql57 \
-DMYSQL_DATADIR=/apps/dbdat/mysql57_3306 \
-DSYSCONFDIR=/app/conf/mysql \
-DWITH_BOOST=/apps/rpm/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql3306.sock \
-DMYSQL_TCP_PORT=3306
#-DWITH_SYSTEMD=1 \ 去掉这个,加上不会安装mysqld_safe
7. 编译
make
8.安装
make install
9.配置mysql参数
vim /apps/conf/mysql/mysql57_3306.cnf
chown -R apps:apps /apps
chmod -R 755 /apps
10. 初始化数据库:(-–datadir目标目录下不能有数据文件)
/apps/svr/mysql57/bin/mysqld --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --initialize --user=apps
/apps/svr/mysql57/bin/mysqld --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --initialize-insecure --user=apps #root 密码为空
/**
1)用默认的配置文件初始化
/apps/svr/mysql5/bin/mysqld --initialize --user=apps --basedir=/apps/svr/mysql57 --datadir=/apps/dbdat/mysql57_data3306 # MySQL 5.7.6 and up mysql_install_db --user=mysql # Before MySQL 5.7.6
2)用自定义配置文件初始化
/apps/svr/mysql57/bin/mysqld --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --initialize --user=mysql # 如果通过配置文件初始化,--defaults-file必须放第一个位置(--initialize前面),但是binlog 目录不能放数据目录
3)初始化 但不设置root 密码, root 密码为空
/apps/svr/mysql57/bin/mysqld --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --initialize-insecure --user=mysql
**/
11.执行完这一句后mysql会分配一个初始的密码,这个密码得备份下来。
继续执行:
/apps/svr/mysql57/bin/mysql_ssl_rsa_setup
13. 启动MySQL:
nohup /apps/svr/mysql57/bin/mysqld_safe --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --user=apps &
/**
bin/mysqld_safe --user=mysql &
或者
/usr/local/mysql/support-files/mysql.server start
或者
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
可以使用service mysqld start | restart | status | status管理
也可以使用systemctl start | restart | status | status mysqld.service
**/
14.登录mysql
mysql
15.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
16.重新登录
mysql -uroot -p