热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQLCentOS7手动安装

手动安装MySQL的目的:1、一个服务器上可以同时装多个版本,甚至相同版本MySQL的多个实例,这种需求很常见;2、一次初始化和配置后,可以快速复制到本服务器或其他服务器,及封装为

手动安装MySQL的目的

1、一个服务器上可以同时装多个版本,甚至相同版本MySQL的多个实例,这种需求很常见;

2、一次初始化和配置后,可以快速复制到本服务器或其他服务器,及封装为初始MySQL的绿色版;

3、调查问题时,只要找到MySQL的Home,所有资源都在里面。

手动安装要达到的目标

1、尽量各种文件都集中在一个文件夹里,防止多实例时发现相同Linux路径下出现相同文件而尴尬(如pid、cnf、log、sock等文件的位置);

2、复制的实例 尽量只简单配置 一下my.cnf、mysql.server启动停止shell、mysqld.service 服务管理的单元文件、防火墙,甚至不需要配置环境变量;

3、默认初始化root密码固定(如123456),可以远程访问。

实操步骤

1、MySQL官网下载Linux Generic版本,我下载的是 5.7.27;

2、服务器上安装 lrzsz,Free implementation of X/Y/Zmodem protocol.  一般服务器都预装,或 yum -y install lrzsz  安装即可,为了把下载好的MySQL传上去;

3、下载putty-nd 远程分支,Noodle build of PuTTY suite,putty官方版不支持 rz上传、sz下载,我下载的版本是 V6.6 ;

4、打开putty-nd,进入服务器,创建好安装目录,我的目录是  /usr/local/mysql  并进入该目录;(此时创建mysql用户,以mysql用户重新登陆安装可以,以root身份安装也可以,我就以root安装)

5、命令 rz 回车,提示选择下载好的Linux Generic压缩包(约630M),等待上传到服务器(很快);

6、直接解压  tar -xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  ,解压完 重命名为 mysql-5.7.27;

7、进入 /usr/local/mysql/mysql-5.7.27  目录后,开始准备my.cnf 配置文件,具体如下:data、pid、err、log、sock都在同一目录下

[mysqld]
port
=3306
basedir
=/usr/local/mysql/mysql-5.7.27
datadir
=/usr/local/mysql/mysql-5.7.27/data
pid
-file=/usr/local/mysql/mysql-5.7.27/mysqld.pid
log
-error=/usr/local/mysql/mysql-5.7.27/mysqld.err
user
=root
max_connections
=151
symbolic
-links=0
lower_case_table_names
= 1
character
-set-server=utf8
collation
-server=utf8_general_ci
bind
-address = 0.0.0.0
socket
=/usr/local/mysql/mysql-5.7.27/mysql.sock
[client]
port
=3306
socket
=/usr/local/mysql/mysql-5.7.27/mysql.sock
default-character-set=utf8

8、将my.cnf 配置文件上传至 当前目录 : /usr/local/mysql/mysql-5.7.27   。 命令# rz 回车选择my.cnf 配置文件上传;

9、进入  support-files/  目录修改mysql.server  shell文件:注意 只修改shell开头的basedir、datadir变量的赋值

#!/bin/sh
#
Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
#
This file is public domain and comes with NO WARRANTY of any kind
# MySQL daemon start/stop script.

basedir
=/usr/local/mysql/mysql-5.7.27
datadir
=/usr/local/mysql/mysql-5.7.27/data


10、添加环境变量,这是为了打包制作MySQL绿色版,所以必须要配置后登陆修改root密码、开启远程;

命令 #  vi /etc/profile  添加 以下路径和变量赋值,注意添加在export之前,且把MYSQL_HOME变量也加在export 后面;

之后编译profile文件# source /etc/profile 

MYSQL_HOME=/usr/local/mysql/mysql-5.7.27
PATH
=$PATH:$MYSQL_HOME/bin

11、初始化数据库,得到初始随机密码 ,命令  ./bin/mysqld --user=root --basedir=/usr/local/mysql/mysql-5.7.27 --datadir=/usr/local/mysql/mysql-5.7.27/data --initialize 

12、开启MySQL服务: ./support-files/mysql.server start 

13、以初始密码登陆: mysql -u root -p ,登陆后修改初始密码: ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new password‘; 

14、开启远程访问:

use mysql
select host,user from user;
update user set host
=‘%‘ where user=‘root‘;
flush privileges;

15、打开防火墙3306端口

16、编辑一个Linux 服务单元文件 = mysqld.service,用来控制MySQL的重启和关闭,将其上传至 /usr/lib/systemd/system 目录,同样CD进入此目录后 命令 # rz选择此文件即可上传。

[Unit]
Description
=MySQL Server 5.7.27
Documentation
=
After
=network-online.target remote-fs.target nss-lookup.target
Wants
=network-online.target
[Service]
Type
=forking
PIDFile
=/usr/local/mysql/mysql-5.7.27/mysqld.pid
ExecStart
=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server start
ExecReload
=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server restart
ExecStop
=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server stop
[Install]
WantedBy
=multi-user.target

17、设置开机自启动  systemctl enable mysqld ,这里的mysqld就是前面的单元文件名称,命令可以加文件名后面的service,也可不加;

18、打包绿色版结束。

总结:关键点就3个,1正确的编辑my.cnf配置文件,及放置的位置basedir根目录;2修改MySQL重启的shell文件mysql.server,添加basedir、datadir;3、编辑管理服务的单元文件 mysqld.service,并放在正确的位置。

以下截图示所有临时文件和数据文件都在此目录下,可就此目录打包下载存档。

技术分享图片

 


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
author-avatar
手机用户2502894533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有