美文网首页
525.【数据库】编译安装mysql 8.0.30

525.【数据库】编译安装mysql 8.0.30

作者: 七镜 | 来源:发表于2022-12-20 05:20 被阅读0次

    一、Mysql 下载地址

    !点击下载

    二、安装gcc11

    gcc

    [root@centos7-0 workspace_mysql]# yum install centos-release-scl-rh
    [root@centos7-0 workspace_mysql]# yum install devtoolset-11-gcc*
    [root@centos7-0 workspace_mysql]# source /opt/rh/devtoolset-11/enable
    [root@centos7-0 workspace_mysql]# gcc --version
    gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
    Copyright (C) 2021 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    三、安装make

    yum install -y ncurses-devel
    [root@centos7-0 make-4.4]# tar -zxvf make-4.4.tar.gz
    [root@centos7-0 make-4.4]# cd make-4.4
    [root@centos7-0 make-4.4]# ./configure --disable-dependency-tracking
    [root@centos7-0 make-4.4]# ./build.sh 
    [root@centos7-0 make-4.4]# ./make 
    [root@centos7-0 make-4.4]# ./make install
    [root@centos7-0 home]# make --version
    GNU Make 4.4
    Built for x86_64-pc-linux-gnu
    Copyright (C) 1988-2022 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    

    四、安装 cmake

    [root@centos7-0 workspace_mysql]# tar -zxvf cmake-3.25.1.tar.gz
    [root@centos7-0 workspace_mysql]# cd cmake-3.25.1
    [root@centos7-0 workspace_mysql]# ./configure
    [root@centos7-0 workspace_mysql]# yum install  -y openssl  openssl-devel 
    [root@centos7-0 workspace_mysql]# make
    [root@centos7-0 workspace_mysql]# make install
    [root@centos7-0 workspace_mysql]# cmake --version
    cmake version 3.25.1
    
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    

    五、开始编译

    yum install -y wget
    
    
    
    # Preconfiguration setup
    $> groupadd mysql
    $> useradd -r -g mysql -s /bin/false mysql
    # Beginning of source-build specific instructions
    $> tar -zxvf mysql-boost-8.0.30.tar.gz
    $> cd mysql-8.0.30/
    
    $> vim extra/libedit/libedit-20210910-3.1/src/terminal.c
    
    将852行的 `area = buf` 改成 `area = NULL` (不改的话,登录时会报错:Segmentation fault (core dumped))(如果没有terminal.c这个文件的话,可以执行```locate terminal.c```)
    
    $> mkdir bld
    $> cd bld
    下面cmake这一步,会报错,根据报错提示,加上提示里头的参数,重新执行即可。
    $> mkdir boost && cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost   
    $> make
    $> make install
    
    make执行结果
    make install 执行结果

    后续启动步骤如下:

    [root@centos7-0 bld]# cd /usr/local/mysql
    [root@centos7-0 mysql]# ls
    LICENSE       LICENSE.router  README-test    bin   include  man         mysqlrouter-log-rotate  share          var
    LICENSE-test  README          README.router  docs  lib      mysql-test  run                     support-files
    [root@centos7-0 mysql]# ll
    total 716
    -rw-r--r--  1 root root 287624 Jul  6 21:36 LICENSE
    -rw-r--r--  1 root root 287624 Jul  6 21:36 LICENSE-test
    -rw-r--r--  1 root root 121393 Jul  6 21:36 LICENSE.router
    -rw-r--r--  1 root root    666 Jul  6 21:36 README
    -rw-r--r--  1 root root    666 Jul  6 21:36 README-test
    -rw-r--r--  1 root root    679 Jul  6 21:36 README.router
    drwxr-xr-x  2 root root   4096 Dec 13 04:32 bin
    drwxr-xr-x  2 root root     86 Dec 13 04:32 docs
    drwxr-xr-x  3 root root    282 Dec 13 04:32 include
    drwxr-xr-x  6 root root    247 Dec 13 04:32 lib
    drwxr-xr-x  4 root root     42 Dec 13 04:32 man
    drwxr-xr-x 10 root root   4096 Dec 13 04:32 mysql-test
    -rw-r--r--  1 root root   1623 Dec 13 00:01 mysqlrouter-log-rotate
    drwxrwxr-x  2 root root      6 Dec 13 04:32 run
    drwxr-xr-x 28 root root   4096 Dec 13 04:32 share
    drwxr-xr-x  2 root root     77 Dec 13 04:32 support-files
    drwxr-xr-x  3 root root     17 Dec 13 04:32 var
    [root@centos7-0 mysql]# mkdir mysql-files
    [root@centos7-0 mysql]# chown mysql:mysql mysql-files
    [root@centos7-0 mysql]#  chmod 750 mysql-files
    [root@centos7-0 mysql]# bin/mysqld --initialize --user=mysql
    2022-12-13T04:33:42.909660Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 68776
    2022-12-13T04:33:42.916979Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2022-12-13T04:33:43.616784Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2022-12-13T04:33:44.772683Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: haIuuL?lt0ge
    [root@centos7-0 mysql]# bin/mysql_ssl_rsa_setup
    [root@centos7-0 mysql]# bin/mysqld_safe --user=mysql &
    [1] 68828
    [root@centos7-0 mysql]# Logging to '/usr/local/mysql/data/centos7-0.err'.
    2022-12-13T04:33:59.627920Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
    
    [root@centos7-0 mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
    [root@centos7-0 mysql]# date
    Tue Dec 13 04:34:15 UTC 2022
    

    六、验证安装

    mysql 交互命令行验证
    • 可以看到命令行交互模式下,数据库是能正常使用的了


      navicat登录验证
    • 可以看到navicat也能远程正常连接了

    修复

    1、通过命令 locate terminal.c查找到我们的这个文件
    
    [root@localhost mysql-8.0.18]# locate terminal.c
    /opt/mysql-8.0.18/extra/libedit/terminal.c
    /opt/mysql-8.0.18/extra/libedit/CMakeFiles/edit.dir/terminal.c.o
    2、修改文件/opt/mysql-8.0.18/extra/libedit/terminal.c,将 area = buf;改为 area = NULL;
    
    3、重新再编译的目录下重新 make 和 make install
    

    相关文章

      网友评论

          本文标题:525.【数据库】编译安装mysql 8.0.30

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