手动安装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,并放在正确的位置。

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

MySQL CentOS7 手动安装的更多相关文章

  1. centos7 下手动安装MySQL-5.6.32-1.linux_glibc2.5.x86_64.rpm-bundle

    由于centos7默认不再是mysql数据库,所以度算手动安装一个. 全程参考http://www.2cto.com/database/201501/371451.html 这里摘抄以下这个链接的内容 ...

  2. 如何在CentOS7上安装MySQL并实现远程访问

    传送门 本人乃学生小白一枚,近期在学习Linux,所以就简单记录一下~ 安装MySQL 首先,需要检查一下是否已经安装了MySQL : # rpm -qa | grep mysql 这时候没有任何输出 ...

  3. 丢用lamp手动安装apache php mysql

    Centos7环境下. 使用lamp环境无法正常显示出thinkphp站点的内容,一气之下,选择手动安装 第一步: 安装apache  php 和php连接数据库的工具php-mysql [root@ ...

  4. Centos7 下安装Apache2 + MySQL + PHP7

    Apache 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验证是否自动启动可在重 ...

  5. centos7 下安装rpm的mysql 5.7

    在centos7下安装mysql5.7 一:下载mysql 去官网上去下载:这里我下载的二进制格式的 https://dev.mysql.com/downloads/mysql/ 去下载对应平台的my ...

  6. windows MySQL 5+ 服务手动安装

    一.手动安装mysql 1.准备一个mysql免安装版本(把原来安装好的版本复制一份即可.一次安装多次使用^_^),将mysql复制到指定目录. 2.配置my.ini文件(本例使用的是5.0.22版本 ...

  7. perl 5.22手动安装Mysql DBI和DBD

    mysql 手动安装DBI 和DBD: DBI版本: [root@dr-mysql01 DBD-mysql-4.033]# perl -MDBI -le 'print $DBI::VERSION;' ...

  8. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

  9. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

随机推荐

  1. vue 专题 vue2.0各大前端移动端ui框架组件展示

    Vue 专题 一个数据驱动的组件,为现代化的 Web 界面而生.具有可扩展的数据绑定机制,原生对象即模型,简洁明了的 API 组件化 UI 构建 多个轻量库搭配使用 请访问链接: https://ww ...

  2. UUIDGenerator

    import java.util.UUID; //下面就是实现为数据库获取一个唯一的主键id的代码 public class UUIDGenerator { public UUIDGenerator( ...

  3. Java8 lambda表达式10个示例<转>

    例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runna ...

  4. spring boot 打包引入第三方jar

    本文作者:@Ryan Miao 本文链接:https://www.cnblogs.com/woshimrf/p/springboot-package-3rdparty-lib.html 版权声明: 本 ...

  5. pan wutong团队隐私协议

    本隐私权政策详细说明了pan wutong团队(“我们”或“我们的”)通过我们的应用程序和网站收集的信息,以及我们将如何使用这些信息. 1.我们不会通过我们的应用程序或网站收集儿童的个人信息. 我们深 ...

  6. [Py] 简单的 Python 运行环境

    python:https://www.python.org/downloads/ pip:https://pip.pypa.io/en/stable/installing/#upgrading-pip ...

  7. 【转】深入理解javascript中的立即执行函数(function(){…})()

    javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( f ...

  8. 关于【vue + element-ui Table的数据多选,多页选择数据回显,分页记录保存选中的数据】的优化

    之前写的[vue + element-ui Table的数据多选,多页选择数据回显,分页记录保存选中的数据]这篇博客.功能虽然实现了相对应的功能.但是用起来很不爽.所以进行了优化. 备注:最近可能没时 ...

  9. 在Gridview 中 对日期格式的控制

    在数据库中保存日期格式的时候,我们需要在客户端的显示有自己的要求 这就需要对 datatime 类型的数据进行控制,使之显示为你需要的格式 数据库中 如果不对其进行控制,显示的格式为 当在前端页面上进 ...

  10. 19 SpringMVC 拦截器

    1. 拦截器的概述(1)SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术.(2)可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链 中的 ...