525. 【数据库】编译安装mysql-8-0-30

一、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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值