MySQL源码安装和二进制安装
准备好三台数据库虚拟机
10.0.0.51 db01     	二进制安装mysql5.7
10.0.0.52 db02		源码安装mysql5.7
10.0.0.53 db03 		二进制安装mysql8.0
mysql的软件包类
1.RPM包
mysql-community-server
2.源码包
带boost的包
3.二进制包
glib2
1.源码安装
1)安装依赖程序
mysql5.5(含)之前的版本,使用的./configure && make && make install
			 之后的版本,使用的cmake && make && make install
yum install -y cmake openssl-devel ncurses-devel libaio-devel
rpm -e --nodeps mariadb-libs
2)创建程序用户
useradd -s /sbin/nologin -M mysql 
或
useradd -r -s /sbin/nologin mysql 
或
groupadd -g 333 mysql
useradd -u 333 -g 333 -s /sbin/nologin -M mysql 
3)创建安装目录和数据目录
生产环境的话,数据不会部署在本地磁盘
安装目录:/app/mysql-xxx
数据目录:/data/mysql/data
a.分区
fdisk /dev/sdb
n -> 一路回车 -> w
b.刷新分区
partprobe /dev/sdb
c.格式化
mkfs.xfs /dev/sdb1
d.挂载
echo "/dev/sdb1 /data xfs defaults 0 0" >>/etc/fstab
或uuid挂载(推荐)
echo "$(blkid /dev/sdb1 | awk '{print $2}') /data xfs defaults 0 0" >> /etc/fstab
mkdir -p /app /data
mount -a
mkdir -p /data/mysql/data
4)获取并解压源码包
tar xf mysql-boost-5.7.32.tar.gz
5)进入解压目录编译安装
cd mysql-5.7.32/
cmake \
-DCMAKE_INSTALL_PREFIX=/app/mysql-5.7.32 \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_UNIX_ADDR=/data/mysql/tmp/mysql.sock \
-DWITH_BOOST=boost \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make
make install
注意:
源码安装的步骤都是固定死的
配置->编译 make->安装 make install
如果cmake报错,将CMakeCache.txt 删除后,再次cmake
6)优化路径并修改目录归属
ln -s /app/mysql-5.7.32/ /app/mysql
chown -R mysql.mysql /app/mysql* /data/mysql
修改环境变量
echo "export PATH=$PATH:/app/mysql/bin" >>/etc/profile
source /etc/profile
7)编辑配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql/data
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
8)初始化
方法一:
初始化数据,初始化管理员的临时密码
mysqld --initialize  --user=mysql --basedir=/app/mysql --datadir=/data/mysql/data
方法二 :
初始化数据,初始化管理员的密码为空
rm -rf  /data/mysql/data/*
mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/mysql/data
9)创建服务启动方式
mysql5.7提供默认的启动脚本文件,可以通过该脚本手动管理mysql服务
/app/mysql/support-files/mysql.server start|stop|status   //开启|停止|状态
建议做成系统服务
方法一:使用C6的启动方式service
cp /app/mysql/support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld = systemctl daemon-reload
chkconfig --list mysqld
chkconfig mysqld on  = systemctl enable mysqld
service mysqld start|stop|restart = systemctl start mysqld
方法二:使用C7的启动方式systemctl
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
2.二进制安装mysql5.7
1)安装依赖程序
yum install -y openssl-devel ncurses-devel libaio-devel
rpm -e --nodeps mariadb-libs
2)创建安装目录和数据目录
生产环境的话,数据不会部署在本地磁盘
安装目录:/app/mysql-xxx
数据目录:/data/mysql/data
a.分区
fdisk /dev/sdb
n -> 一路回车 -> w
b.刷新分区
partprobe /dev/sdb
c.格式化
mkfs.xfs /dev/sdb1
d.挂载
echo "/dev/sdb1 /data xfs defaults 0 0" >>/etc/fstab
或uuid挂载(推荐)
echo "$(blkid /dev/sdb1 | awk '{print $2}') /data xfs defaults 0 0" >> /etc/fstab
mkdir -p /app /data
mount -a
mkdir -p /data/mysql/data
3)建程序用户
useradd -s /sbin/nologin -M mysql 
4)获取二进制包并解压到安装路径
tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /mysql/
5)优化路径并修改目录归属
#ln -s /app/mysql-5.7.32-linux-glibc2.12-x86_64/ /app/mysql
ln -s /mysql/mysql-5.7.32-linux-glibc2.12-x86_64/ /mysql/mysql-5.7
#chown -R mysql.mysql /app/mysql* /data/mysql
chown -R mysql.mysql /mysql
#修改环境变量
#echo "export PATH=$PATH:/app/mysql/bin" >>/etc/profile
echo "export PATH=$PATH:/mysql/mysql-5.7/bin" >>/etc/profile
source /etc/profile
6)创建配置
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/mysql/mysql-5.7
datadir=/mysql/data
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
chmod 644 /etc/my.cnf
7)初始化
#mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/mysql/data
mysqld --initialize-insecure  --user=mysql --basedir=/mysql/mysql-5.7 --datadir=/mysql/data
8)创建服务启动方式
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/mysql/mysql-5.7/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
3.二进制安装mysql8.0.18
1)安装依赖程序
yum install -y openssl-devel ncurses-devel libaio-devel
rpm -e --nodeps mariadb-libs
2)创建安装目录和数据目录
生产环境的话,数据不会部署在本地磁盘
安装目录:/app/mysql-xxx
数据目录:/data/mysql/data
a.分区
fdisk /dev/sdb
n -> 一路回车 -> w
b.刷新分区
partprobe /dev/sdb
c.格式化
mkfs.xfs /dev/sdb1
d.挂载
echo "/dev/sdb1 /data xfs defaults 0 0" >>/etc/fstab
或uuid挂载(推荐)
echo "$(blkid /dev/sdb1 | awk '{print $2}') /data xfs defaults 0 0" >> /etc/fstab
mkdir -p /app /data
mount -a
mkdir -p /data/mysql/data
3)建程序用户
useradd -s /sbin/nologin -M mysql 
4)获取二进制包并解压到安装路径
tar xf mysql-8.0.18-linux-glibc2.12-x86_64.tar
tar xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /app/
5)优化路径并修改目录归属
ln -s /app/mysql-8.0.18-linux-glibc2.12-x86_64/ /app/mysql
chown -R mysql.mysql /app/mysql* /data/mysql
#修改环境变量
echo "export PATH=$PATH:/app/mysql/bin" >>/etc/profile
source /etc/profile
6)创建配置
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql/data
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
7)初始化
mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/mysql/data
8)创建服务启动方式
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号