鲲鹏凌云上源码安装MySQL5.7.28

参考链接:https://bbs.huaweicloud.com/forum/thread-47298-1-1.html

由于该链接有n多个坑,所以迫于无奈,自己又总结了一下:

1.环境:centos7.5     8核16G  鲲鹏凌云服务器

2.安装依赖包
执行以下命令安装依赖包:
yum install bison* ncurses* -y
yum install bzip2 wget openssl-devel -y
3.配置MySQL编译环境
检查cmake是否安装。
rpm -qa |grep cmake
如果未安装,需要安装。。
cd /home
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
tar -zxvf cmake-3.9.2.tar.gz
cd cmake-3.9.2
./configure
make && make install
cmake -version

 4.升级gcc版本至7.3.0    编译安装gcc的时间将会特别长!!!
cd /home
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar -xvf gcc-7.3.0.tar.gz
cd /home/gcc-7.3.0
将安装包下载放置于“/home/gcc-7.3.0”目录下,如下载比较慢有条件可通过香港去主机下载过来。
wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
在“gcc-7.3.0”目录下,检查gcc的依赖包是否已下载和安装。
./contrib/download_prerequisites

 编译安装gcc,“-j”参数可利用多核CPU加快编译速度,在本示例中,使用的是16核CPU,所以此处为“-j16”。
可通过下述命令查询CPU核数:
cat /proc/cpuinfo| grep "processor"| wc -l
cd /home/gcc-7.3.0
mkdir gcc-build-7.3.0
cd gcc-build-7.3.0
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
make -j16
make install
确定“libstdc++.so、libstdc++.so.6.0.24”是在“/usr/lib64”目录下。
cd /usr/lib64
ll |grep libstdc++.so
ll |grep libstdc++.so.6.0.24
查看gcc版本
gcc -v

5.MySQL安装
下载源码
cd /home/
wget -c http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.28.tar.gz
解压
tar -zvxf mysql-boost-5.7.28.tar.gz
cd /home/mysql-5.7.28
配置参数,以下是整条命令不要换行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/mysql-5.7.28/boost/boost_1_59_0
6.Bug处理,在文件首行添加即可,不然会编译失败

在解压后的目录下,编辑该文件,在首行加上一下内容即可

vim /home/mysql-5.7.28/sql/mysqld.cc

  #include <sys/prctl.h>

  .........

若在预编译时出现依赖包不全的情况,可自行查阅资料安装依赖包,并重新预编译。
重新预编译前,需要执行rm -f CMakeCache.txt。
make -j16
make install

7.配置MySQL
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql
mkdir -p /data/log /data/data /data/run

8.初始化操作,执行下述命令后,会产生初始随机密码,需要记录。
bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/data --user=mysql

chown -R mysql:mysql /data
ln -s /data/data/mysql.sock /tmp/mysql.sock

9.配置/etc/my.cnf文件

cat > /etc/my.cnf<<EOF
[client]
#password   = your_password
port        = 3306
socket      = /data/data/mysql.sock
[mysqld]
port        = 3306
socket      = /data/data/mysql.sock
datadir = /data/data
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 8M
tmp_table_size = 16M
performance_schema_max_table_instances = 500
explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id   = 1
expire_logs_days = 10
early-plugin-load = ""
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_home_dir = /data/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/data
innodb_buffer_pool_size = 16M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 8
innodb_write_io_threads = 8
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer_size = 2M
write_buffer_size = 2M
[mysqlhotcopy]
interactive-timeout
EOF

10.服务配置
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start
11.环境配置
vim ~/.bash_profile
export PATH=/usr/local/mysql/bin:$PATH
source ~/.bash_profile
12.登录修改密码
mysql -uroot -p"密码"
alter user 'root'@'localhost' identified by 'HuaWei#231';
mysql -uroot -pHWjob#231

原文地址:https://www.cnblogs.com/new-journey/p/12831577.html