加入收藏 | 设为首页 | 会员中心 | 我要投稿 临夏站长网 (https://www.0930zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql8.0.18如何属性源码编译安装和gcc-9.2.0提升

发布时间:2021-12-28 12:03:26 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关Mysql8.0.18如何属性源码编译安装和gcc-9.2.0升级,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、环境设置 [root@centos1 opt]# vim /etc/selinux/config SELINUX=disabled 2、用户
这篇文章将为大家详细讲解有关Mysql8.0.18如何属性源码编译安装和gcc-9.2.0升级,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
 
1、环境设置
 
[root@centos1 opt]# vim /etc/selinux/config
SELINUX=disabled
2、用户新增目录设置
 
[root@centos1 opt]# id mysqlid: mysql: no such user
[root@centos1 opt]#  groupadd -g 101 mysql
[root@centos1 opt]# useradd -u 514 -g mysql -G root -d /home/mysql  -m mysql
[root@centos1 opt]# passwd mysqlChanging password for user mysql.New password:
Retype new password: passwd: all authentication tokens updated successfully.
[root@centos1 opt]# id mysqluid=514(mysql) gid=101(mysql) groups=101(mysql),0(root)
[root@centos1 opt]# mkdir -p /usr/local/mysql
[root@centos1 opt]# chown -R mysql.mysql /usr/local/mysql
[root@centos1 opt]# su - mysql Last login: Fri Oct 25 16:18:20 CST 2019 on pts/0
[mysql@centos1 ~]$ vi .bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/mysql
[root@centos1 ~]# mkdir -p /data/mysql/data
[root@centos1 ~]# mkdir -p /data/mysql/log
[root@centos1 ~]# mkdir -p /data/mysql/rum
[root@centos1 ~]# mv /data/mysql/rum /data/mysql/run
[root@centos1 ~]# mkdir -p /data/mysql/tmp
[root@centos1 local]# chown -R 755 /usr/local/mysql
3、解压安装包mysql-8.0.18.tar.gz  到 /opt/mysql8
 
4、安装依赖
yum install -y gcc gcc-c++ ncurses-devel bison zlib libxml openssl
更新cmake3 通过Yum 安装
yum install cmake3
 
安装后发现编译不通过 需要更新gcc版本5 以上
 
5、gcc-9.2.0编译安装
 
转载: https://www.2cto.com/net/201908/815589.html
 
安装gcc 源码编译依赖
 
## 先编译gmp->mpfr->mpc
cd  /usr/local/src/
编译: gmp-6.1.2
tar -xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
cd ../
编译:mpfr-4.0.2
tar -xvf mpfr-4.0.2.tar.gz
cd mpfr-4.0.2
./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
cd ../
编译:mpc-1.1.0
tar -xvf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-mpfr=/usr/local/mpfr-4.0.2  --with-gmp=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
# 把mpfr lib 加入 ld.so.conf 不然gcc 编译报错
echo /usr/local/mpfr-4.0.2/lib  >> /etc/ld.so.conf
ldconfig
编译安装gcc
 
cd /usr/local/src/
tar -xvf gcc-9.2.0.tar.gz
cd gcc-9.2.0
./configure --prefix=/usr/local/gcc-9.2.0
                  -enable-threads=posix
                  -disable-checking
                  -disable-multilib
                  -enable-languages=c,c++
                  --with-gmp=/usr/local/gmp-6.1.2
                  --with-mpfr=/usr/local/mpfr-4.0.2
                  --with-mpc=/usr/local/mpc-1.1.0
                  --with-tune=generic
                  --with-arch_32=x86-64
make -j $(nproc)
make install -j $(nproc)
##备份旧 gcc 可执行文件
 mv /usr/bin/gcc /usr/bin/gcc.old
 mv /usr/bin/g++ /usr/bin/g++.old
 mv /usr/bin/c++ /usr/bin/c++.old
 mv /usr/bin/cpp /usr/bin/cpp.old
 mv /usr/bin/gcov /usr/bin/gcov.old
 ## 创建最新gcc 执行文件软链
 ln -sf /usr/local/gcc-9.2.0/bin/* /usr/bin/
 ## 删除lib64 目录下.py 文件不然ldconfig 报错
 rm -rf /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27-gdb.py
 echo /usr/local/gcc-9.2.0/lib64 >> /etc/ld.so.conf
ldconfig
## 复制libstdc++.so.6.0.27  /lib64/
cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27 /lib64/
# 创建软链 libstdc++.so.6
cd /lib64
ln  -sf libstdc++.so.6.0.27 libstdc++.so.6
## 查看是否最新版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
6、cmake编译mysql
 
(由于装了不同的版本gcc,编译时可以通过参数指定版本****重要!*****)
 
cmake3
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=ON
-DWITH_INNODB_MEMCACHED=ON
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DCOMPILATION_COMMENT="nancy edition"
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/data/mysql/tmp
-DMYSQL_UNIX_ADDR=/data/mysql/run/mysql.sock
-DMYSQL_TCP_PORT=3306
-DSYSCONFDIR=/data/mysql
-DWITH_READLINE=1
-DFORCE_INSOURCE_BUILD=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DCMAKE_CXX_COMPILER=/usr/local/gcc-9.2.0/bin/g++
-DCMAKE_C_COMPILER=/usr/local/gcc-9.2.0/bin/gcc
编译结束:
 
-- CMAKE_EXE_LINKER_FLAGS -- CMAKE_MODULE_LINKER_FLAGS -- CMAKE_SHARED_LINKER_FLAGS -- Configuring done-- Generating doneCMake Warning:  Manually-specified variables were not used by the project:
    EXTRA_CHARSETS
-- Build files have been written to: /opt/mysql8
同目录下执行安装创建目录:
 
gmake -j $(nproc)gmake install -j $(nproc)
编译成功:
Scanning dependencies of target mysqld[100%] Building CXX object sql/CMakeFiles/mysqld.dir/main.cc.oScanning dependencies of target pfs_connect_attr-t[100%] Linking CXX executable ../runtime_output_directory/mysqld[100%] Building CXX object storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/pfs_connect_attr-t.cc.o[100%] Building CXX object storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/__/__/__/sql/sql_builtin.cc.o[100%] Linking CXX executable ../../../runtime_output_directory/pfs_connect_attr-t[100%] Built target mysqld[100%] Built target pfs_connect_attr-t[root@centos1 mysql8]#
查看目录:
 
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=100
back_log=1024
max_binlog_cache_size=2147483648
max_binlog_size=524288000
default_storage_engine = InnoDB
log_slave_updates = 1
 
#*********** Logs related settings ***********
log_bin = /data/mysql/binlog/mysql-bin
[mysql@centos1 mysql]$ more /date/mysql/my.cnf
/date/mysql/my.cnf: No such file or directory
[mysql@centos1 mysql]$ more /data/mysql/my.cnf
[client]
port = 3306
socket = /data/mysql/run/mysql.sock
# The MySQL server
[mysqld]
port = 3306
user = mysql
socket = /data/mysql/run/mysql.sock
pid_file = /data/mysql/mysqld.pid
basedir = /usr/local/mysql
datadir = /data/mysql/data
tmpdir = /data/mysql/tmp
open_files_limit = 65535
explicit_defaults_for_timestamp
server_id = 1
lower_case_table_names = 1
character_set_server = utf8
#sql_mode=STRICT_TRANS_TABLES
#
# ******security
safe_user_create
max_connections = 3000
max_user_connections=2980
secure_file_priv=/data/mysql/tmp
 
#some var for mysql8
#log_error_verbosity=3
#innodb_print_ddl_logs=1
#binlog_expire_logs_seconds=259200
#innodb_dedicate_server=0
#
#innodb_status_file=1
#innodb_status_output=0
#innodb_status_output_locks=0
 
[mysqldump]
quick
max_allowed_packet=2G
log_error=/data/mysql/log/mysqld/dump.log
net_buffer_length=8k
 
 
9、初始化
 
$/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --initialize --user=mysql
 
查看初始化日志及密码
 
[mysql@centos1 mysql]$ vi mysql-error.log
 
2019-10-31T03:30:00.222973Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: j63rKGLr3j-L
 
10、启动mysql服务
$/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/my.cnf --user=mysql &
 
关闭数据库
[mysql@centos1 bin]$ mysqladmin -uroot -pmysqlWAI --socket=/data/mysql/run/mysql.sock shutdown &
 
完成!
 
关于“Mysql8.0.18如何属性源码编译安装和gcc-9.2.0升级”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

(编辑:临夏站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!