在Centos7下源码安装部署 MySQL57
测试环境
Centos-7-x86 64-DVD-1810
安装时选择安装类型为基本的web服务器安装
http://mirrors.aliyun.com/centos/7/isos/x86 64/
http://mirrors.aliyun.com/centos/7/isos/x86 64/Centos-7-x86 64-DVD-1810.iso
mysql-5.7.27.tar.gz(mysql Communtity server)
下载地址:
https://dev.mysql.com/downloads/file/?id=487682
boost_159_0.tar.gz(mysq157 指定要求该版本)
下载地址:
Boost C++ Libraries
https://sourceforge.net/projects/boost/files/boost/1.59.0/boost 1 59 0.tar.gz/download
卸载 mariadb(如果有的话)
#rpm qa l grep mariadb
mariadb-libs-5.5.60-1.e17_5.x86_64
#rpm -e--nodeps mariadb-libs-5.5.60-1.e17_5.x86_64
安装gcc
yum install gcc
不安装的话运行cmake会出现以下报错信息
安装gcc-c++
yum install gcc-c++
解决执行cmake时报错问题
安装ncurses-devel
#yum install -y ncurses-devel
解决执行 cmake 时报错问题:
安装cmake
# yum install cmake
其他安装步骤
添加mysql用户和用户组
# 添加mysql用户和用户组用于运行与执行mysql服务器,取得数据库目录所有权
# groupadd mysql
# useradd -r -g mysql -s /bin/nologin mysql# tar -xvzf mysql-5.7.27.tar.gz
# cd mysql-5.7.27
# mkdir build
# cd build
# cmake
说明:此处直接执行cmake ..报错,具体错误信息如下:
解决方案如下
另外开放个终端,为boost文件设置存放路径
# mkdir -p /usr/local/boost
# cp boost_1_71_0.tar.gz /usr/local/boost/
# cd /usr/local/boost/
# tar -xvzf boost_1_59_0.tar.gz返回mysql解压源码目录下的build目录,继续执行cmake命令
# cmake .. -DwITH_BOOST=/usr/local/boost/boost_1_59_0注意:如果执行cmake时出错时,希望重新执行cmake,执行命令前,需要执行make clean清除命令
并且删除当前build目录下生成的CMakeCache.txt 如下
make clean
rm -f CMakeCache.txt
另外,build 目录也可以创建为和 mysq1源码目录同层级的目录,执行 cmake 命令时指定 mysq1 源码目录即可,如下:
# ls
build mysql-5.7.27
cd build
# cmake ../mysql-5.7.27 -DWITH_BOOST=/usr/local/boost/boost_1_59_0
cmake 执行成功之后,在 bulid 目录下继续执行以下命令,继续安装
编译安装
# make
# make install说明:执行make install 默认安装文件到 /usr/local/mysql ,我们也可以提示显示指定需要安装的目录如下:
make install DESTDIR=/usr/otherdir # mysql 被安装到/user/otherdir/usr/local/mysql 目录下
为mysql创建数据存储目录
# cd /usr/local/mysql
# mkdir data
# chown mysql:mysql data
# chmod 750 data
为mysql创建配置存放目录
# mkdir etc
# chown mysql:mysql etc
# chmod 750 etc
为mysql创建日志存放目录
# mkdie logs
# chown mysql:mysql logs
# chmod 750 logs
创建配置文件
注意:创建的配置文件格式必须为ANSI ASCII 编码格式,否则执行后会出现以下报错
# cd /usr/local/mysql/etc
# vim 创建 my.cnf,内容如下:
[mysqld]
basedir=/usr/local/mysql #basedir 根目录,即 bin,docs,data,lib等目录所在上级路径
datadir=/usr/local/mysql/data #datadir 数据存储路径,basedir/data
socket=/usr/local/mysql/data/mysql.sock #/var/lib/mysql/mysql.sock
port=3306
character_set_server=utf8 #服务器字符集设置
user=mysql
#存储引擎设置,要打开那个模式,把注释去掉,同时把另一个修改为注释即可。
#如果 INNODB 模式如果不能启动,删除 data 目录下 ib开头的日志文件重新启动。
#default-storage-engine=MyISAM
default-storage-engine=INNODB
#InnoDB 用来高速缓冲数据和索引内存缓冲大小。更大的设置可以使访问数据时减少磁盘 I/0
innodb_buffer_pool size-64M
innodb_purge_threads =1
#InnoD8 将日志写入日志磁盘文件前的缓冲大小。理想值为 1M 至 8M。大的日志缓冲允许事务运行时不需要将日志保存入磁盘而只到事务被提交(commit)。因此,如果有大的事务处理,设置大的日志缓冲可以减少磁盘 I/0。
innodb_log_buffer_size=2M
#日志组中的每个日志文件的大小(单位 MB)。假设在日志组中日志文件的数目为n,那么理想的数值为 1M至下面设置的缓冲池(buffer poo1)大小的 1/n。较大的值,可以减少刷新缓冲池的次数,从而减少磁盘I/0。但是大的日志文件意味着在崩溃时需要更长的时间来恢复数据
innodb_log_file_size = 64M
#并发线程数的限制值,表示默认0情况下不限制线程并发执行的数量
innodb_thread_concurrency=8
#在回滚(rooled back)之前,InnoDB 事务将等待超时的时间(单位 秒)
innodb_lock_wait_timeout = 120
初始化数据库
# cd /usr/local/mysql
# bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql
# tail -1000f /usr/local/mysql/logs/mysql.log
添加自动安全连接支持
注意,这一步必须位于初始化数据库之后,否则会导致初始化数据库失败
后台运行的方式启动数据库
将 mysql 设置为系统服务
#另外开个终端,进行以下操作,这样以后方便能通过 service mysql stop,service mysql start
停止、启动服务
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/init.d/mysql
如果想让 mysql 随系统启动,可以进一步执行以下命令
# chmod +x /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig --list
开放3306端口
# firewall-cmd--permanent--zone=public--add-port=3306/tcp
# firewall-cmd -reload
修改root的用户密码
注:mysqladmin.exe-u用户名-p-P端口号 password 新密码
登录并新建新用户
登录系统
# bin/mysql -u root -P3306-proot1234@xxx;
mysql>
新建用户
mysql>create user test identified by 'test1234';
Query OK,0 rows affected(0.01 sec)mysql> grant all privileges on *,* to 'test'@'%' identified by 'test1234'
with grant option;
Query OK,0 rows affected,1 warning(0.00 sec)mysql>fflush privileges;Query Ok, 0 rows affected(0.01 sec)
基于 mysqldump 自动热备份
#添加 mysqldump 软连接
#ln-s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
创建备份文件夹
# cd /usr/local/mysql
# mkdir backup
新建备份Sh脚本
# vim mysql_auto_backup.sh
脚本内容如下
验证
#./mysql_auto_backup.sh test manager platform
参考链接
https://dev,mvsql.com/doc/refman/5.7/en/installing-source-distribution.html
https://dev.mysql.com/doc/refman/5.7/enpostinstallation.html
https://dev,mysql.com/doc/refman/5.7/en/data-directory-initialization,html
https://dev,mysgl.com/doc/refman/5.7/en/optionfiles.html
https://www,cnblogs.com/gne-hwz/p/10220179.html