当前位置: 首页 > news >正文

在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

相关文章:

  • 【C语言基础】双指针在qsort函数中的应用
  • 浙江大学:DeepSeek如何引领智慧医疗的革新之路?|48页PPT下载方法
  • WordPress - 此站点出现严重错误
  • 《AI大模型应知应会100篇》第19篇:隐私保护与大模型训练
  • 计算机网络 - 四次挥手相关问题
  • 利用IDEA开发Spark-SQL
  • 状态机编程中的事件和状态
  • nginx自编译重现gzip和chunked的现象
  • MATLAB程序实现了一个物流配送优化系统,主要功能是通过遗传算法结合四种不同的配送策略,优化快递订单的配送方案
  • 封装实用的时间选择器组件
  • YOLOv3超详细解读(三):源码解析:数据处理模块
  • Spring Boot 参数校验 Validation 终极指南
  • Open AI 使用篇
  • 从拥堵到畅行,智慧城市如何实现交通魔法?
  • 深入剖析Java中ThreadLocal原理
  • 可灵 2.0 可图 2.0 全解析:从 AI 图片到影视级视频的创作革命
  • zkmall模块商城:B2C 场景下 Vue3 前端性能优化的广度探索与实践
  • ThermoMPNN/ThermoMPNN-D 的安装及使用教程
  • Google-A2A协议全面解析:一文掌握Agent-to-Agent协议的核心与应用
  • 客户消失不配合,如何推动验收
  • 4月LPR保持不变:1年期3.1%,5年期以上3.6%
  • 诺奖得主等数十位经济学家发表宣言反对美关税政策
  • 智慧菜场团标试验:标准化的同时还能保留个性化吗?
  • 沈辛成评《主动出击》丨科学普及,究竟需要靠谁主动出击
  • 上海召开全市加强社会治安综合治理中心规范化建设工作推进会
  • 江苏银行去年净赚超318亿增超10%,不良贷款率持平