当前位置:Gxlcms > 数据库问题 > Mysql编译安装8.0.19

Mysql编译安装8.0.19

时间:2021-07-01 10:21:17 帮助过:24人阅读

Mysql编译安装8.0.19

准备工作

  1. <code>下面是安装要求,已安装的可以跳过。
  2. cmake
  3. boost
  4. gcc
  5. ncurses
  6. openssl
  7. bison
  8. doxygen
  9. </code>

GCC

  1. <code># 查看版本版本不能低于5.3.0
  2. gcc -v
  3. # 安装GCC必备的几个东西
  4. gmp-6.1.0.tar.bz2
  5. mpfr-3.1.3.tar.bz2
  6. mpc-1.0.3.tar.gz
  7. gcc-5.3.0.tar.gz
  8. # 下载地址
  9. 链接:https://pan.baidu.com/s/1vvviVxHkVMlDT6hvwjr6rA
  10. 提取码:15i9
  11. # 创建目录
  12. mkdir temp
  13. cd temp
  14. # 解压文件
  15. tar xvf gmp-6.1.0.tar.bz2
  16. tar xvf mpfr-3.1.3.tar.bz2
  17. tar xvf mpc-1.0.3.tar.gz
  18. tar xvf gcc-5.3.0.tar.gz
  19. # 编译gmp-6.1.0
  20. ../gmp-6.1.0/configure –prefix=/usr/local/gmp-6.1.0 ------------#这句是说,安装路径是/usr/local/,名字叫gmp-6.1.0;
  21. make
  22. make install
  23. # 安装好后,可以查看/usr/local/gmp-6.1.0目录下有三个文件夹
  24. # 编译mpfr-3.1.3
  25. ../mpfr-3.1.3/configure --prefix=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-6.1.0 # prefix是安装路径,with是依赖的gmp库。
  26. make
  27. make install
  28. # 编译mpc-1.0.3
  29. ../mpc-1.0.3/configure –prefix=/usr/local/mpc-1.0.3 –with-gmp=/usr/local/gmp-6.1.0 –with-mpfr=/usr/local/mpfr-3.1.3
  30. make
  31. make install
  32. # 编译gcc5.3.0
  33. ../gcc-5.3.0/configure --prefix=/usr/local/gcc-5.3 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.3 --with-mpc=/usr/local/mpc-1.0.3
  34. make
  35. make install
  36. #在配置时,对于语言language=选项,可以根据自己需要的编译器选择语言。 ,java,obc都可以加进去,至此GCC5.3安装完毕。
  37. # 检查已安装的gcc版本
  38. rpm -q gcc
  39. gcc-4.8.5-28.el7.x86_64
  40. # 删除之前的gcc
  41. rpm -e gcc-4.8.5-28.el7.x86_64
  42. # 卸载报错要卸载所有依赖
  43. # 把gcc-5.3.0软连接到执行目录
  44. cd /usr/bin
  45. ln -s /usr/local/gcc-5.3/bin/gcc gcc
  46. ln -s /usr/local/gcc-5.3/bin/g++ g++
  47. # 生效gcc变量
  48. vim /etc/profile
  49. export LD_LIBRARY_PATH=/usr/local/gcc-5.3/lib:/usr/local/gcc-5.3/lib64:$LD_LIBRARY_PATH
  50. # source文件
  51. source /etc/profile
  52. # 查看版本
  53. [root@mysql ~]# gcc -v
  54. 使用内建 specs。
  55. COLLECT_GCC=gcc
  56. COLLECT_LTO_WRAPPER=/usr/local/gcc-5.3/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper
  57. 目标:x86_64-unknown-linux-gnu
  58. 配置为:./configure --prefix=/usr/local/gcc-5.3 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.3 --with-mpc=/usr/local/mpc-1.0.3
  59. 线程模型:posix
  60. gcc 版本 5.3.0 (GCC)
  61. </code>

boots

  1. <code>boost不需要手动安装,后面运行cmake脚本的时候会自动下载安装,当然也可以手动安装,官网的文档说是需要特定版本,这里的MySQL Server 8.0.19需要的是1.70.0,目前最新的boost库为1.72.0。
  2. </code>

技术图片

技术图片

Red Hat系

7.x:

  1. <code>sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen
  2. </code>

8.x:

  1. <code>sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel
  2. </code>

boost

  1. <code>https://downloads.mysql.com/archives/community/
  2. 这里不知道带boost与不带boost的有什么区别,后面使用cmake的时候都需要手动下载boost,所以就随便选一个吧。有知道的大神可以留言,小弟感激不尽。
  3. </code>

技术图片

解压

  1. <code># 解压boots
  2. tar -zxvf mysql-boost-8.0.19.tar.gz
  3. # 进入目录
  4. cd mysql-8.0.19
  5. </code>

创建临时bld文件夹

  1. <code>mkdir bld
  2. </code>

编译与安装

cmake

先去官网下载:

技术图片

  1. <code># 解压cmake
  2. tar zxf cmake-3.17.2-Linux-x86_64.tar.gz
  3. # 进入到cmake目录
  4. cd cmake-3.17.2-Linux-x86_64/
  5. # 进入到cmake下级bin目录
  6. cd bin/
  7. # 软连接到cmake目录
  8. ln -s /root/cmake-3.17.2-Linux-x86_64/bin/cmake /usr/bin/cmake
  9. # 查看cmake版本
  10. cmake -version
  11. cmake version 3.17.2
  12. CMake suite maintained and supported by Kitware (kitware.com/cmake).
  13. </code>
  1. <code>cd mysql-8.0.19/bld/
  2. cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=. -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_SSL=system -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 </code>

安装了boost的可以不需要:

  1. <code>-DDOWNLOAD_BOOST=1
  2. -DWITH_BOOST
  3. </code>

安装位置与数据位置根据需要自定义:

  1. <code>-DCMAKE_INSTALL_PREFIX=
  2. -DMYSQL_DATADIR=
  3. </code>

编译和安装

  1. <code>make
  2. make install
  3. </code>

这里笔者遇到了libstdc++.so.6这个库的问题,MySQL Server 8.0.19安装需要GLIBCXX_3.4.25. 可以看看自己的libstdc++.so.6的路径:

  1. <code>cd /usr/local/gcc-5.3/lib64
  2. # 查看libstdc++.so.6版本对不对,不能低于3.4.25
  3. strings /usr/local/gcc-5.3/lib64/libstdc++.so.6 | grep GLIBCXX
  4. # 下载对应libstdc++6_8.3.0-6_amd64.deb
  5. http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb
  6. # 解压libstdc++6_8.3.0-6_amd64.deb
  7. ar -x libstdc++6_8.3.0-6_amd64.deb
  8. # 再解压xz
  9. xz -d data.tar.xz
  10. tar -xvf data.tar
  11. # 删除之前的libstdc++.so.6
  12. rm /usr/lib64/libstdc++.so.6
  13. # 拷贝
  14. cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/
  15. # 软连接到相应目录
  16. ln /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6
  17. # 查看版本是不是4.3.25
  18. strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
  19. # 测试test,最后显示100% ok
  20. make test
  21. </code>

配置MySQL

新建用户组与用户

  1. <code>groupadd mysql
  2. useradd -r -g mysql -s /bin/false mysql
  3. </code>

修改数据目录所有者与权限

  1. <code>chown -R mysql:mysql /usr/local/mysql/data/
  2. chmod 777 /usr/local/mysql/data/
  3. </code>

编辑mysql配置文件

  1. <code>vim /etc/my.cnf
  2. [mysqld]
  3. port=3306
  4. basedir=/usr/local/mysql/server
  5. datadir=/usr/local/mysql/data
  6. character-set-server=utf8mb4
  7. [mysql]
  8. default-character-set=utf8
  9. [client]
  10. port=3306
  11. default-character-set=utf8
  12. 参数根据需要可以后期添加,这里如果使用utf8:
  13. [mysqld]
  14. character-set-server=utf8
  15. 会有警告,因为MySQL5.5.3之后增加了utf8mb4,mb4是most bytes 4的意思,专门用来兼容四字节的unicode,utf8指的是utf8mb3,支持的utf8编码最大字符长度为3字节,警告提示改成utf8mb4:
  16. [mysqld]
  17. character-set-server=utf8mb4
  18. </code>

初始化

  1. <code># 进入到MySQL Server的安装目录下的bin
  2. cd /usr/local/mysql/server/bin/
  3. # 初始化
  4. ./mysqld --initialize-insecure --user=mysql
  5. # 支持ssl与rsa(可选)
  6. ./mysql_ssl_rsa_setup
  7. # 开启服务
  8. ./mysqld_safe --user=mysql &
  9. # 修改root密码
  10. ./mysql -u root --skip-password
  11. # 首次无密钥登陆
  12. ./mysql -u root -p
  13. # 进入mysql数据库user表修改密码为123456
  14. mysql> use mysql;
  15. mysql> select user,host,authentication_string from user;
  16. mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
  17. </code>

测试

  1. <code>./mysqladmin -u root -p version
  2. ./mysqlshow -u root -p
  3. </code>

技术图片

后续处理

  1. <code># 可以先把安装文件给删去:
  2. rm -rf mysql-8.0.19*
  3. rm -rf boost_1_70_0*
  4. # 添加别名
  5. alias mysqld="/usr/local/mysql/server/bin/mysqld_safe --user=mysql &"
  6. alias mysql="/usr/local/mysql/server/bin/mysql -u root -p"
  7. # 永久生效别名
  8. [root@mysql ~]# cat /root/.bashrc
  9. # .bashrc
  10. # User specific aliases and functions
  11. alias rm=‘rm -i‘
  12. alias cp=‘cp -i‘
  13. alias mv=‘mv -i‘
  14. alias mysqld="/usr/local/mysql/server/bin/mysqld_safe --user=mysql &"
  15. alias mysql="/usr/local/mysql/server/bin/mysql -u root -p"
  16. # Source global definitions
  17. if [ -f /etc/bashrc ]; then
  18. . /etc/bashrc
  19. fi
  20. [root@mysql ~]# source /root/.bashrc
  21. # 启动服务
  22. [root@mysql ~]# mysqld
  23. # 启动
  24. [root@mysql ~]# mysql
  25. # 进入目录
  26. cd /usr/local/mysql/server/support-files
  27. # 移动到/etc/init.d/
  28. mv mysql.server /etc/init.d/
  29. # 进入到/etc/init.d/
  30. cd /etc/init.d/
  31. # 改名字
  32. mv mysql.server mysqld
  33. # 启动
  34. /etc/init.d/mysqld start
  35. # 停止
  36. /etc/init.d/mysqld stop
  37. </code>

Mysql编译安装8.0.19

标签:安装文件   bzip2   mysql配置   mos   exec   mod   make   init   编码   

人气教程排行