美文网首页PHP工作笔记
CentOS 7.4 使用源码包编译安装MySQL 5.7.25

CentOS 7.4 使用源码包编译安装MySQL 5.7.25

作者: Pureven | 来源:发表于2019-05-27 21:49 被阅读0次
    image

    一、下载安装包

    (一)、先下载MySQL源码,网址为:https://dev.mysql.com/downloads/mysql/ :

    1.在Select Operationg System中选择Source Code;
    2.在下面的Select OS Version选择Generic Linux(Architecture Independent);
    3.然后再下面的部分可以看到Compressed TAR Archive,单击后面的Download;
    4.在弹出的界面中选择最下面的No thanks, just start my download就可以开始下载了。
    下载完成后将文件复制到服务器的/usr/local/src目录下即可。

    也可以使用下面的方法直接在Linux中下载源码包,在/usr/local/src目录下直接用wget进行下载:

    cd /usr/local/src
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25.tar.gz
    

    或者直接下载mysql-boost.5.7.25.tar.gz,这样可以免去单独下载boost

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz
    
    (二)、下载 boost

    下载网址为:http://www.boost.org/users/download/
    这个版本的MySQL要求boost的版本是1.59,链接为:
    http://www.boost.org/users/history/version_1_59_0.html
    下面给出boost 1.59.0的链接,在/usr/local/src目录下直接用wget进行下载

    wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    

    二、编译安装

    (一)、安装必要的软件依赖:
    yum install -y cmake bison bison-devel libaio libaio-devel gcc gcc-c++ ncurses ncurses-devel
    
    (二)、解压MySQL源文件:
    tar -zxvf mysql-boost-5.7.25.tar.gz
    
    (三)、进入MySQL源文件目录,新建configure做为编译目录,并进入该目录:
    cd mysql-5.7.20
    mkdir configure
    cd configure
    
    (四)、使用cmake进行生成编译环境:
    参数 说明
    -DCMAKE_INSTALL_PREFIX=dir_name 基础的文件夹,对应mysqld的--basedir参数
    -DMYSQL_DATADIR=dir_name 数据存放目录
    -DSYSCONFDIR=dir_name 默认配置my.cnf目录
    -DWITH_MYISAM_STORAGE_ENGINE 添加MYISAM引擎支持
    -DWITH_INNOBASE_STORAGE_ENGINE 添加InnoDB引擎支持
    -DWITH_ARCHIVE_STORAGE_ENGINE 添加ARCHIVE引擎支持
    -DMYSQL_UNIX_ADDR 指定mysql.sock位置
    -DWITH_PARTITION_STORAGE_ENGINE 安装支持数据库分区
    -DINSTALL_BINDIR=dir_name bin目录位置
    -DINSTALL_DOCDIR=dir_name 文档目录位置
    -DINSTALL_DOCREADMEDIR=dir_name Readme文件位置
    -DINSTALL_INCLUDEDIR=dir_name Include目录位置
    -DINSTALL_LAYOUT=name 布局选项,包括Standalone、RPM、SRV4、DEB
    -DWITH-SYSTEMD 可以使用systemd控制mysql服务
    -DEXTRA_CHARSETS 使mysql支持所有的扩展字符
    -DCMAKE_BUILD_TYPE RelWithDebInfo: 默认值,启用optimizations,同时生成调试信息 ,Debug: 禁用optimizations, 同时生成调试信息
    -DENABLE_DTRACE 是否启用dtrace
    -DWITH_EMBEDDED_SERVER 是否构建libmysqld嵌入式服务器库
    -DWITH_INNODB_MEMCACHED 是否生成memcached共享库
    -DWITH_SSL 加载SSL库 •bundled:使用与分发捆绑的库。•system:使用系统库。这是默认设置
    -DWITH_ZLIB 某些功能要求使用压缩库支持构建服务器,例如 compress()和uncompress()函数,以及客户端/服务器协议的压缩, 这个使用_zlib表示zlib支持的来源: •bundled:使用与分发捆绑的zlib库。•system:使用系统zlib库。这是默认设置
    -DINSTALL_PLUGINDIR 插件目录
    -DDEFAULT_CHARSET 设置mysql的默认字符集
    -DDEFAULT_COLLATION 设置默认字符集校对规则
    -DWITH_EDITLINE 加载libedit/editline库 •bundled:使用与分发捆绑的库。 •system:使用系统库。这是默认设置
    -DCOMPILATION_COMMENT 编译信息,后面启动的时候会看到
    -DWITH_DEBUG 支持启用调试
    -DWITH_BOOST 指向boost库所在目录

    编译参数选项参考表格说明

    cmake .. -DBUILD_CONFIG=mysql_release \
    -DINSTALL_LAYOUT=STANDALONE \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DSYSCONFDIR=/usr/local/mysql5.7/etc/my.cnf \
    -DENABLE_DTRACE=OFF \
    -DWITH_EMBEDDED_SERVER=OFF \
    -DWITH_INNODB_MEMCACHED=ON \
    -DWITH_SSL=bundled \
    -DWITH_ZLIB=system \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7/ \
    -DINSTALL_PLUGINDIR="/usr/local/mysql5.7/lib/plugin" \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EDITLINE=bundled \
    -DFEATURE_SET=community \
    -DCOMPILATION_COMMENT="MySQL Server (GPL)" \
    -DWITH_DEBUG=OFF \
    -DWITH_BOOST=../boost
    

    如果编译出现错误,请先删除CMakeCache.txt后,再重新编译:

    rm -rf CMakeCache.txt
    

    如果出现下面的提示就表示成功生成了编译环境:

    -- Configuring done
    -- Generating done
    
    (五)、使用make进行编译:
    make
    

    编译完成后,会出现如下信息:

    [100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o
    Linking CXX shared module udf_example.so
    [100%] Built target udf_example
    [100%] Built target my_safe_process
    
    (六)、安装MySQL:
    make install
    

    三、初始化数据库

    (一)、添加mysql用户给MySQL专用,禁止登陆
    useradd -s /sbin/nologin mysql
    
    (二)、新建数据库文件夹及日志文件夹,并更改用户为mysql:
    mkdir /mysql_data
    mkdir /var/mysql/log
    chown -R mysql:mysql /mysql_data/
    chown -R mysql:mysql /var/mysql/log
    
    (三)、修改配置文件
    vim /etc/my.cnf
    

    内容替换为:

    [mysqld]
    port=3306
    user=mysql
    datadir=/data/mysql/data
    log_error=/data/mysql/log/error.log
    basedir=/usr/local/mysql5.7
    socket=/usr/local/mysql5.7/mysql.sock
    pid-file=/usr/local/mysql5.7/mysqld.pid
    default-storage-engine=INNODB
    max_connections=200
    character-set-server=utf8
    
    [mysql]
    port=3306
    default-character-set=utf8
    socket=/usr/local/mysql5.7/mysql.sock
    
    [client]
    port=3306
    default-character-set=utf8
    socket=/usr/local/mysql5.7/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    #symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    #[mysqld_safe]
    #log-error=/var/log/mariadb/mariadb.log
    #pid-file=/var/run/mariadb/mariadb.pid
    
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
    (四)、初始化数据库:
    /usr/local/mysql5.7/bin/mysqld  --initialize --user=mysql
    

    查看数据文件是否生成:

    [root@tony local]# ll /data/mysql/data/
    total 110628
    -rw-r-----. 1 mysql mysql       56 May 27 15:42 auto.cnf
    -rw-r-----. 1 mysql mysql      419 May 27 15:42 ib_buffer_pool
    -rw-r-----. 1 mysql mysql 12582912 May 27 15:42 ibdata1
    -rw-r-----. 1 mysql mysql 50331648 May 27 15:42 ib_logfile0
    -rw-r-----. 1 mysql mysql 50331648 May 27 15:42 ib_logfile1
    drwxr-x---. 2 mysql mysql     4096 May 27 15:42 mysql
    drwxr-x---. 2 mysql mysql     8192 May 27 15:42 performance_schema
    drwxr-x---. 2 mysql mysql     8192 May 27 15:42 sys
    

    查看日志文件是否生成:

    [root@tony local]# ll /data/mysql/log/
    total 4
    -rw-r-----. 1 mysql mysql 802 May 27 15:42 error.log
    

    四、配置启动文件及环境变更

    (一)、配置启动文件

    1. 从模板文件中复制启动文件:

    cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld
    

    2. 修改启动文件:

    vim /etc/init.d/mysqld
    

    找到如下二行:

    basedir=
    datadir=
    

    修改为:

    basedir=/usr/local/mysql5.7
    datadir=/data/mysql/data
    

    3. 启动mysql:

    [root@tony local]# /etc/init.d/mysqld start
    Starting MySQL. SUCCESS!
    

    可以看到提示,已经成功启动。当然你也可以使用systemctl来启动MySQL,但执行后,不会有任何提示。

    [root@tony local]# service mysqld start
    
    (二)、设置MySQL开机自动启动:
    [root@tony local]# chkconfig mysqld on
    
    (三)、配置MySQL环境变量:
    vim /etc/profile
    

    在最底层添加

    PATH=$PATH:/usr/local/mysql5.7/bin
    
    (四)、修改root的初始密码

    1. 查看root的初始密码

    MySQL从5.7开始不支持安装后使用空密码进行登录,因此在这里需要先查询程序生成的临时密码:

    [root@tony tony]# cat /data/mysql/log/error.log | grep 'password'
    2019-05-27T07:42:31.049551Z 1 [Note] A temporary password is generated for root@localhost: dfZsY7diI2%A
    

    最后一行冒号后面的部分dfZsY7diI2%A就是初始密码。
    2. 登录MySQL并修改初始密码:
    使用初始密码登录MySQL:

    [root@tony local]# mysql -uroot -p
    Enter password:
    

    登录后立即修改root密码,将密码改为'ilovemysql'

    mysql> alter user 'root'@'localhost' identified by 'ilovemysql';
    Query OK, 0 rows affected (0.00 sec)
    

    其中your_password是你设置的新密码。新密码应是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上。

    (五)、测试

    设置好以后,重新启动服务器,查看MySQL是否自动启动:

    [root@tony tony]# ps -aux | grep mysql
    root      1161  0.0  0.0 115436  1712 ?        S    16:20   0:00 /bin/sh /usr/local/mysql5.7/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/usr/local/mysql5.7/mysqld.pid
    mysql     1511  1.3  9.3 1117208 175728 ?      Sl   16:20   0:01 /usr/local/mysql5.7/bin/mysqld --basedir=/usr/local/mysql5.7 --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql5.7/lib/plugin --user=mysql --log-error=/data/mysql/log/error.log --pid-file=/usr/local/mysql5.7/mysqld.pid --socket=/usr/local/mysql5.7/mysql.sock --port=3306
    root      2136  0.0  0.0 112708   976 pts/0    R+   16:22   0:00 grep --color=auto mysql
    

    出现以上信息就表示已经完成在CentOS7.4上手工编译、安装MySQL5.7.25全部过程

    相关文章

      网友评论

        本文标题:CentOS 7.4 使用源码包编译安装MySQL 5.7.25

        本文链接:https://www.haomeiwen.com/subject/bkiktctx.html