CentOS6.9安装MySQL(编译安装、二进制安装)

目录

CentOS6.9安装MySQL

Linux安装MySQL的4种方式:

1. 二进制方式

特点:不需要安装,解压即可使用,不能定制功能

2. 编译安装

特点:可定制,安装慢

5.5之前: ./configure make make install

5.6之后: cmake gmake

3. rpm,yum

特点:安装方便,安装速度快,无法定制

4. 先编译,然后制作rpm,制作yum源,然后yum安装

特点:简单,速度快,可定制,比较复杂,制作时间长

企业选择:

中小企业:以上方式都可以,运维偏向编译安装,dba偏向选择二进制

大型企业:选择第四种

二进制安装步骤:

环境准备

Linux系统,这里以CentOS6.9作为演示

mysql安装包:mysql-5.7.19-linux-glibc2.5-x86_64.tar.gz

安装

  1. 解压mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz,并拷贝到/application/mysql-5.7.24目录下

    mkdir -p /tools
    mkdir -p /application
    cd /tools
    tar -zxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    mv mysql-5.7.24-linux-glibc2.12-x86_64 /application/mysql-5.7.24 ln -s /application/mysql-5.7.24 /application/mysql5.7
  2. 添加mysql 用户

    useradd -s /sbin/nologin -M mysql
    
    # 提前创建安装目录
    mkdir -p /application/mysql-5.7.24
  3. 修改mysql工作目录权限

    chown -R mysql.mysql /application/mysql-5.7.24  /application/mysql5.7
  4. 安装mysql

    cd /application/mysql5.7
    
    ./bin/mysqld --initialize --user=mysql --basedir=/application/mysql5.7 --datadir=/application/mysql5.7/data
    
    # 执行完上诉命令,输出的信息中存在mysql的登录密码。(最后一行的最后一串字符就是密码)
  5. 将mysql启动命令复制到系统文件中

    cp  /application/mysql5.7/support-files/mysql.server   /etc/init.d/mysqld
  6. 将mysql的启动文件路径加入到系统环境变量中

    echo "PATH=/application/mysql5.7/bin:$PATH" >> /etc/profile
    
    . /etc/profile   # 让/etc/profile文件生效
  7. 配置mysql配置文件

    # 编辑配置文件
    vim /etc/my.cnf ************************以下为配置,直接复制粘贴***************************
    [mysql]
    socket=/application/mysql5.7/data/mysql.sock [mysqld]
    port=3306
    socket=/application/mysql5.7/data/mysql.sock
    basedir=/application/mysql5.7
    datadir=/application/mysql5.7/data
  8. 启动mysql服务

    /etc/init.d/mysqld start
  9. 登录mysql服务

    mysql -u root -p密码       # 密码是第4步中的内容
  10. 最后登录成功的界面

    CentOS6.9安装MySQL(编译安装、二进制安装)

  11. 修改密码

    alter user user() identified by "新密码";

到这里二进制安装就结束了

编译安装步骤:

环境准备

Linux系统,这里以CentOS6.9作为演示

mysql安装包:mysql-5.6.37.tar.gz(后面步骤中有详细的地址)

安装

  1. 安装依赖包

    yum install -y ncurses-devel libaio-devel gcc gcc-c++
  2. 安装cmake,编译器

    yum install cmake -y
  3. 创建用户,供运行mysql使用

    useradd -s /sbin/nologin -M mysql
    
    # 提前创建安装目录
    mkdir -p /application/mysql-5.6.36
  4. 下载安装包

    wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz
  5. 解包

    tar -zxvf mysql-5.6.37.tar.gz
    
    # 进入对应的目录中
    cd mysql-5.6-37
  6. 编译

    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \
    -DMYSQL_DATADIR=/application/mysql-5.6.36/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITH_ZLIB=bundled \
    -DWITH_SSL=bundled \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DENABLE_DOWNLOADS=1 \
    -DWITH_DEBUG=0
    make && make install *******************************参数含义*****************************
    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.37 \ # 指定安装目录,类似window选择目录安装软件,默认最后一级目录系统自动创建。
    -DMYSQL_DATADIR=/application/mysql-5.6.37/data \ # 指定数据目录,一般都是跟随安装下
    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.37/tmp/mysql.sock \ # 指定sock文件位置
    -DDEFAULT_CHARSET=utf8 \ # 字符编码
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 启用该引擎的支持。语法为:-DWITH_<ENGINE>_STORAGE_ENGINE=1 禁用语法为:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \ # 同上
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ # 同上
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ # 同上
    -DWITH_ZLIB=bundled \
    -DWITH_SSL=bundled \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DENABLE_DOWNLOADS=1 \
    -DWITH_DEBUG=0
    make && make install # make 开始编译,make install 安装 **********************常见的编译参数*************************
    -DMYSQL_USER=mysql # 设置mysql服务的用户,必须真实存在
    -DMYSQL_TCP_PORT=3306 # 设置mysql服务的端口,默认为3306

更多编译请参考官方文档:https://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_storage_engine_options

  1. 创建软连接

    ln -s /application/mysql-5.6.37  /application/mysql5.6
  2. 修改安装目录的权限

    chmod +w /application/mysql-5.6.37
    chmod +w /application/mysql5.6 chown -R mysql:mysql /application/mysql5.6
    chown -R mysql:mysql /application/mysql-5.6.37
  3. 复制配置文件到Linux系统目录下,并在/etc/my.cnf文件中添加如下内容

    cd /application/mysql-5.6.37
    
    cp -f support-files/my-default.cnf /etc/my.cnf
    
    # 在/etc/my.cnf中添加如下内容:
    -----------------------------/etc/my.cnf内容------------------------
    [mysql]
    socket=/application/mysql5.6/data/mysql.sock [mysqld]
    port=3306
    socket=/application/mysql5.6/data/mysql.sock
    basedir=/application/mysql5.6
    datadir=/application/mysql5.6/data
    -------------------------------------------------------------------
  4. 执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径

    cd /application/mysql5.6/scripts/
    
    ./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/application/mysql5.6  --datadir=/application/mysql5.6/data  --user=mysql
    
    # --defaults-file   指定mysql的配置文件
    # --basedir 指定mysql工作目录
    # --datadir 指定mysql数据目录
    # -user 指定mysql软件运行的用户
  5. 将mysql启动文件拷贝到系统目录下(类似windows把软件的启动程序,拷贝到了桌面,有利于快速启动)

    cd /application/mysql5.6
    
    cp support-files/mysql.server  /etc/init.d/mysqld
  6. 授权mysqld文件执行权限

    chmod +x /etc/init.d/mysqld
  7. 设置开机自启动(根据自身爱好进行设置)

    chkconfig mysqld on
  8. 启动msyql服务

    /etc/init.d/mysqld start
  9. 把mysql服务的路径添加到环境变量中

    echo "PATH=/application/mysql5.6/bin:$PATH" >> /etc/profile
    
    . /etc/profile   # 让/etc/profile文件生效
  10. 设置mysql登录的密码

    /application/mysql5.6/bin/mysqladmin -u root password '新密码' -S /application/mysql5.6/data/mysql.sock
  11. 登录mysql服务

    mysql -uroot -p新密码   # 注意-p后面直接接密码,不要空格
  12. 登录成功后的界面如图

    CentOS6.9安装MySQL(编译安装、二进制安装)

到这里mysql就安装完毕了,期间碰到了一些坑,好在全部都解决了。

上一篇:Linux 内核 UFO-非UFO 路径切换内存破坏漏洞的 PoC(CVE-2017-1000112)


下一篇:Centos Java环境(转)