centos下mysql5.7部署

本文提供四种部署方式,请选择属于合适自己的方式

一.centos7 mysql5.7yum方式部署

1.准备工作:

关闭SELinux, 防火墙,修改主机名,解析主机名,时间同步

注意:先将本机的环境清干净
[root@mysql ~]# rpm -qa |grep mariadb
[root@mysql ~]# rpm -e mariadb-libs --nodeps //查询到的所有mariadb的软件都要卸载掉
[root@mysql ~]# rm -rf /var/lib/mysql
[root@mysql ~]# rm -rf /etc/my.cnf

2.下载MySQL源安装包

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功
[root@mysql ~]# yum repolist enabled | grep "mysql.*-community.*"

Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
mysql-connectors-community/x86_64 MySQL Connectors Community                 153
mysql-tools-community/x86_64      MySQL Tools Community                      110
mysql57-community/x86_64          MySQL 5.7 Community Server                 424

3.安装MySQL

[root@mysql ~]#yum -y install mysql-community-server

4.启动服务

首次启动服务时会在软件内部生成软件运行时需要的一些库和表,所以会比较慢
[root@mysql ~]# systemctl restart mysqld && systemctl enable mysqld
获取root用户的临时密码,并修改
[root@mysql ~]# grep "password" /var/log/mysqld.log

2020-05-28T04:02:51.535722Z 1 [Note] A temporary password is generated for root@localhost: 5!a664?L4DWy

5.修改root用户密码方法:

mysql -u root -p
mysql> set password for 'root'@'localhost'='Www.1.com';
mysql> flush privileges;

二.centos7mysql5.7rpm包部署

1.下载mysql-5.7.23-1.el7.x86_64.rpm-bundle-centos7.tar

下载地址:百度云
提取码:mm9h

2.解压mysql-5.7.23-1.el7.x86_64.rpm-bundle-centos7.tar

[root@mysql opt]# tar -xf mysql-5.7.23-1.el7.x86_64.rpm-bundle-centos7.tar

3.注意:先将本机的环境清干净

[root@mysql ~]# rpm -qa |grep mariadb
[root@mysql ~]# rpm -e mariadb-libs --nodeps //查询到的所有mariadb的软件都要卸载掉
[root@mysql ~]# rm -rf /var/lib/mysql
[root@mysql ~]# rm -rf /etc/my.cnf

4.安装mysql

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

5.启动服务

首次启动服务时会在软件内部生成软件运行时需要的一些库和表,所以会比较慢
[root@mysql ~]# systemctl restart mysqld && systemctl enable mysqld

6.获取root用户的临时密码,并修改

[root@mysql ~]# grep "password" /var/log/mysqld.log
mysql -u root -p
mysql> set password for 'root'@'localhost'='Www.1.com';
mysql> flush privileges;

三.centos7mysql5.7源码编译部署

准备工作:

关闭SELinux, 防火墙,修改主机名,解析主机名,时间同步

注意:先将本机的环境清干净
[root@mysql ~]# rpm -qa |grep mariadb
[root@mysql ~]# rpm -e mariadb-libs --nodeps //查询到的所有mariadb的软件都要卸载掉
[root@mysql ~]# rm -rf /var/lib/mysql
[root@mysql ~]# rm -rf /etc/my.cnf

1、修改数据目录的所属

[root@mysql ~]# mkdir -p /mydata/data/
[root@mysql ~]# useradd -u 27 -s /sbin/nologin -M mysql
[root@mysql ~]# chown -R mysql.mysql /mydata/data/

2.下载mysql5.7 源码包

链接:百度云
提取码:fdev

3.解压

[root@mysql ~]# tar -zxvf mysql-boost-5.7.17.tar.gz -C /usr/local/src

4.下载依赖包

[root@mysql ~]# yum -y install gcc gcc-c++ cmake make ncurses-devel.x86_64 ncurses

5.编译

需要注意的问题:
内存
根分区空间
缺少的包要装
[root@mysql ~]# cd /usr/local/src/mysql-5.7.17/

 cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/mydata/data \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 

报错:

c++: 编译器内部错误:已杀死(程序 cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] 错误 4
make[1]: *** [sql/CMakeFiles/sql.dir/all] 错误 2
make: *** [all] 错误 2

解决办法:
调整内存到2048,或者增加swap
注意:
错误的编译信息会存放到解压目录下CMakeCache.txt文件中,所以每次解决完问题,重新编译需要将此文件删掉

rm -rf /usr/local/src/mysql-5.7.17/CMakeCache.txt

返回0后再make
[root@mysql mysql-5.7.17 ]# echo $?

[root@mysql mysql-5.7.17 ]# make

[root@mysql mysql-5.7.17 ]# echo $?

[root@mysql mysql-5.7.17 ]# make install

6.初始化数据库

[root@mysql~]# chown -R mysql.mysql /usr/local/mysql/
[root@mysql ~]# chown -R mysql.mysql /mydata/data
[root@mysql ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data

注意:数据库的root用户的初始化密码会在这里显示,请进行记录

7.启动和设置mysql环境

[root@mysql ~]# cd /usr/local/mysql/support-files/
[root@mysq support-files]# cp my-default.cnf /etc/my.cnf
[root@mysql ~]# vim /etc/my.cnf

[mysqld]
basedir=/usr/local/mysql
datadir=/mydata/data
port=3306
server_id=121
socket=/tmp/mysql.sock

[root@mysqltest data]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@mysql ~]# vim /etc/rc.d/rc.local

 /usr/local/mysql/bin/mysqld_safe --user=mysql &

设置启动服务脚本
[root@mysql ~]# cd /usr/local/mysql/support-files/
[root@mysql support-files]# cp mysql.server /etc/init.d/mysqld
[root@mysql support-files]# chmod +x /etc/init.d/mysqld
[root@mysql support-files]# /etc/init.d/mysqld restart //或者用下面命令
[root@mysql support-files]# service mysqld restart
[root@mysql ~]# chkconfig --add mysqld
[root@mysql ~]# chkconfig mysqld on
[root@mysql ~]# chkconfig mysqld --list
[root@mysql ~]# ss -antp | grep mysqld
[root@mysql ~]# vim /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

[root@mysql ~]# source /etc/profile.d/mysql.sh

8.修改密码

mysql -u root -p
mysql> set password for 'root'@'localhost'='Www.1.com';
mysql> flush privileges;

总结mysql的rpm和源码

rpm包mysql
数据存放目录:/var/lib/mysql
日志:/var/log/mysqld.log
启动服务:systemctl restart mysqld
套接字文件:/var/lib/mysql/mysql.sock
端口:3306
命令:/usr/bin/mysql*

源码包mysql
数据存放目录:/mydata/data
日志:/mydata/data/hostname.err
启动服务:/usr/local/mysql/bin/mysql_safe --user=mysql &
socket文件:/tmp/mysql.sock
端口:3306
客户端:/usr/local/mysql/bin/mysql*

四.centos7 mysql5.7半源码方式部署

1.准备工作:

关闭SELinux, 防火墙,修改主机名,解析主机名,时间同步

注意:先将本机的环境清干净
[root@mysql ~]# rpm -qa |grep mariadb
[root@mysql ~]# rpm -e mariadb-libs --nodeps //查询到的所有mariadb的软件都要卸载掉
[root@mysql ~]# rm -rf /var/lib/mysql
[root@mysql ~]# rm -rf /etc/my.cnf

2.下载MySQL编译好的包

下载:百度云
提取码:c93o
3.解压
[root@mysql ~]# tar -xvf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@mysql ~]# cd /usr/local/
[root@mysql local]# mv mysql-5.7.14-linux-glibc2.5-x86_64 mysql

4.创建用户和修改所属

[root@mysql local]# useradd -u 27 -s /sbin/nologin -M mysql
[root@mysql local]# mkdir /mysqldata
[root@mysql local]# chown -R mysql:mysql /mysqldata/
[root@mysql local]# chown -R mysql.mysql /usr/local/mysql/

5.初始化

[root@mysql local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysqldata
注意:数据库的root用户的初始化密码会在这里显示,请进行记录

[root@mysql ~]# cd /usr/local/mysql/support-files/
[root@mysq support-files]# cp my-default.cnf /etc/my.cnf
[root@mysql ~]# vim /etc/my.cnf

[mysqld]
basedir=/usr/local/mysql
datadir=/mysqldata
port=3306
server_id=121
socket=/tmp/mysql.sock

设置MySQL命令的环境变量
[root@mysql ~]# vim /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

[root@mysql ~]# source /etc/profile.d/mysql.sh
[root@mysql ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &

设置启动服务脚本

[root@mysql ~]# cd /usr/local/mysql/support-files/
[root@mysql support-files]# cp mysql.server /etc/init.d/mysqld
[root@mysql support-files]# chmod +x /etc/init.d/mysqld
[root@mysql support-files]# /etc/init.d/mysqld restart //或者用下面命令
[root@mysql support-files]# service mysqld restart
[root@mysql ~]# chkconfig --add mysqld
[root@mysql ~]# chkconfig mysqld on
[root@mysql ~]# chkconfig mysqld --list
[root@mysql ~]# ss -antp | grep mysqld

6.获取root用户的临时密码,并修改

[root@mysql ~]# mysql -u root -p
mysql> set password for 'root'@'localhost'='Www.1.com';
mysql> flush privileges;

mysql> grant all on *.* to etc@'%' identified by 'Www.2.com';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

你可能感兴趣的:(centos下mysql5.7部署)