zoukankan      html  css  js  c++  java
  • MySQL CentOS7 手动安装

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

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

  • 相关阅读:
    五小步让VS Code支持AngularJS智能提示
    AngularJS----服务,表单,模块
    AJAX 动态加载后台数据 绑定select
    连接mysql 报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    MAC中向阿里云服务器上传文件
    使用Navicat连接阿里云ECS服务器上的MySQL数据库
    mysql面试题:字段中@之前字符相同且大于等于2条的所有记录
    2018 最新手机号正则(最新最全)
    php同一个用户同时只能登陆一个, 后登陆者踢掉前登陆者(排他登陆)
    php 单冒号 、双冒号的用法
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/11279220.html
Copyright © 2011-2022 走看看