sunln00 2020-05-07
下面是安装要求,已安装的可以跳过。 cmake boost gcc ncurses openssl bison doxygen
# 查看版本版本不能低于5.3.0 gcc -v # 安装GCC必备的几个东西 gmp-6.1.0.tar.bz2 mpfr-3.1.3.tar.bz2 mpc-1.0.3.tar.gz gcc-5.3.0.tar.gz # 下载地址 链接:https://pan.baidu.com/s/1vvviVxHkVMlDT6hvwjr6rA 提取码:15i9 # 创建目录 mkdir temp cd temp # 解压文件 tar xvf gmp-6.1.0.tar.bz2 tar xvf mpfr-3.1.3.tar.bz2 tar xvf mpc-1.0.3.tar.gz tar xvf gcc-5.3.0.tar.gz # 编译gmp-6.1.0 ../gmp-6.1.0/configure –prefix=/usr/local/gmp-6.1.0 ------------#这句是说,安装路径是/usr/local/,名字叫gmp-6.1.0; make make install # 安装好后,可以查看/usr/local/gmp-6.1.0目录下有三个文件夹 # 编译mpfr-3.1.3 ../mpfr-3.1.3/configure --prefix=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-6.1.0 # prefix是安装路径,with是依赖的gmp库。 make make install # 编译mpc-1.0.3 ../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 make make install # 编译gcc5.3.0 ../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 make make install #在配置时,对于语言language=选项,可以根据自己需要的编译器选择语言。 ,java,obc都可以加进去,至此GCC5.3安装完毕。 # 检查已安装的gcc版本 rpm -q gcc gcc-4.8.5-28.el7.x86_64 # 删除之前的gcc rpm -e gcc-4.8.5-28.el7.x86_64 # 卸载报错要卸载所有依赖 # 把gcc-5.3.0软连接到执行目录 cd /usr/bin ln -s /usr/local/gcc-5.3/bin/gcc gcc ln -s /usr/local/gcc-5.3/bin/g++ g++ # 生效gcc变量 vim /etc/profile export LD_LIBRARY_PATH=/usr/local/gcc-5.3/lib:/usr/local/gcc-5.3/lib64:$LD_LIBRARY_PATH # source文件 source /etc/profile # 查看版本 [ ~]# gcc -v 使用内建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/gcc-5.3/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper 目标:x86_64-unknown-linux-gnu 配置为:./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 线程模型:posix gcc 版本 5.3.0 (GCC)
boost不需要手动安装,后面运行cmake脚本的时候会自动下载安装,当然也可以手动安装,官网的文档说是需要特定版本,这里的MySQL Server 8.0.19需要的是1.70.0,目前最新的boost库为1.72.0。
sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen
sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel
https://downloads.mysql.com/archives/community/ 这里不知道带boost与不带boost的有什么区别,后面使用cmake的时候都需要手动下载boost,所以就随便选一个吧。有知道的大神可以留言,小弟感激不尽。
# 解压boots tar -zxvf mysql-boost-8.0.19.tar.gz # 进入目录 cd mysql-8.0.19
mkdir bld
先去官网下载:
# 解压cmake tar zxf cmake-3.17.2-Linux-x86_64.tar.gz # 进入到cmake目录 cd cmake-3.17.2-Linux-x86_64/ # 进入到cmake下级bin目录 cd bin/ # 软连接到cmake目录 ln -s /root/cmake-3.17.2-Linux-x86_64/bin/cmake /usr/bin/cmake # 查看cmake版本 cmake -version cmake version 3.17.2 CMake suite maintained and supported by Kitware (kitware.com/cmake).
cd mysql-8.0.19/bld/ 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
安装了boost的可以不需要:
-DDOWNLOAD_BOOST=1 -DWITH_BOOST
安装位置与数据位置根据需要自定义:
-DCMAKE_INSTALL_PREFIX= -DMYSQL_DATADIR=
编译和安装
make make install
这里笔者遇到了libstdc++.so.6这个库的问题,MySQL Server 8.0.19安装需要GLIBCXX_3.4.25. 可以看看自己的libstdc++.so.6的路径:
cd /usr/local/gcc-5.3/lib64 # 查看libstdc++.so.6版本对不对,不能低于3.4.25 strings /usr/local/gcc-5.3/lib64/libstdc++.so.6 | grep GLIBCXX # 下载对应libstdc++6_8.3.0-6_amd64.deb http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb # 解压libstdc++6_8.3.0-6_amd64.deb ar -x libstdc++6_8.3.0-6_amd64.deb # 再解压xz xz -d data.tar.xz tar -xvf data.tar # 删除之前的libstdc++.so.6 rm /usr/lib64/libstdc++.so.6 # 拷贝 cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/ # 软连接到相应目录 ln /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6 # 查看版本是不是4.3.25 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX # 测试test,最后显示100% ok make test
groupadd mysql useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql/data/ chmod 777 /usr/local/mysql/data/
vim /etc/my.cnf [mysqld] port=3306 basedir=/usr/local/mysql/server datadir=/usr/local/mysql/data character-set-server=utf8mb4 [mysql] default-character-set=utf8 [client] port=3306 default-character-set=utf8 参数根据需要可以后期添加,这里如果使用utf8: [mysqld] character-set-server=utf8 会有警告,因为MySQL5.5.3之后增加了utf8mb4,mb4是most bytes 4的意思,专门用来兼容四字节的unicode,utf8指的是utf8mb3,支持的utf8编码最大字符长度为3字节,警告提示改成utf8mb4: [mysqld] character-set-server=utf8mb4
# 进入到MySQL Server的安装目录下的bin cd /usr/local/mysql/server/bin/ # 初始化 ./mysqld --initialize-insecure --user=mysql # 支持ssl与rsa(可选) ./mysql_ssl_rsa_setup # 开启服务 ./mysqld_safe --user=mysql & # 修改root密码 ./mysql -u root --skip-password # 首次无密钥登陆 ./mysql -u root -p # 进入mysql数据库user表修改密码为123456 mysql> use mysql; mysql> select user,host,authentication_string from user; mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
./mysqladmin -u root -p version ./mysqlshow -u root -p
# 可以先把安装文件给删去: rm -rf mysql-8.0.19* rm -rf boost_1_70_0* # 添加别名 alias mysqld="/usr/local/mysql/server/bin/mysqld_safe --user=mysql &" alias mysql="/usr/local/mysql/server/bin/mysql -u root -p" # 永久生效别名 [ ~]# cat /root/.bashrc # .bashrc # User specific aliases and functions alias rm=‘rm -i‘ alias cp=‘cp -i‘ alias mv=‘mv -i‘ alias mysqld="/usr/local/mysql/server/bin/mysqld_safe --user=mysql &" alias mysql="/usr/local/mysql/server/bin/mysql -u root -p" # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi [ ~]# source /root/.bashrc # 启动服务 [ ~]# mysqld # 启动 [ ~]# mysql # 进入目录 cd /usr/local/mysql/server/support-files # 移动到/etc/init.d/ mv mysql.server /etc/init.d/ # 进入到/etc/init.d/ cd /etc/init.d/ # 改名字 mv mysql.server mysqld # 启动 /etc/init.d/mysqld start # 停止 /etc/init.d/mysqld stop