Loading

Mysql5.7和8.0源码编译安装

注意事项:

  1. CentOS 8版本需要额外安装 libtirpc-devel 包

  2. CentOS 7版本安装mysql 8.0版本需要升级cmake,gcc包版本,升级后要注意处理旧版本包,例如建立新的软连接,或者干脆删除旧版本包。CentOS 8版本本身yum源中包的版本就比较新,可以直接使用dnf命令安装即可。

  3. 源码安装mysql需要有boost库,最好事先下载好,然后在编译的时候指定boost路径,不推荐在线下载,可能会下载非常慢。

  4. 最好多核编译,内存4G以上。

  5. password()函数在mysql8.0.11之后版本被废除了,不能用来修改密码了。推荐使用alter命令来修改用户密码。

  6. 源码安装mysql需要编译安装rpcsvc-proto包,否则在编译mysql的时候会有如下报错。

CMake Error at plugin/group_replication/libmysqlgcs/rpcgen.cmake:100 (MESSAGE):
  Could not find rpcgen
Call Stack (most recent call first):
  plugin/group_replication/libmysqlgcs/CMakeLists.txt:38 (INCLUDE)
  1. 编译时间较长,注意安排时间。

Mysql 5.7.30 源码编译安装

编译安装rpcsvc-proto-1.4.2包

tar xvf rpcsvc-proto-1.4.2.tar.xz
cd rpcsvc-proto-1.4.2/
./configure
make -j 2 ; make install

编译安装mysql

#安装相关依赖包
yum -y install make cmake gcc gcc-c++ ncurses ncurses-devel bison

#创建用户及用户组
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin mysql

#准备mysql目录
mkdir /data/mysql
chown mysql.mysql /data/mysql

#将压缩包解压到指定目录
tar xvf boost_1_59_0.tar.bz2 -C /usr/local/
tar xvf mysql-5.7.30.tar.gz

#编译安装mysql 5.7.30
cd ../mysql-5.7.30

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0

make -j 8 && make install

#环境变量设置
##方法1:
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
##方法2:
ln -s /apps/mysql/bin/* /usr/local/bin/

#准备配置文件
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid

[client]
default-character-set=utf8mb4
socket=/data/mysql/mysql.sock

[mysql]
default-character-set=utf8mb4
socket=/data/mysql/mysql.sock

[mysql]
auto-rehash
prompt="\\u@\\h [\\d]>"

#初始化数据库
mysqld --initialize-insecure --user=mysql --basedir=/apps/mysql --datadir=/data/mysql

#准备服务脚本
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld

#启动mysql
chkconfig --add mysqld
service mysqld start

#修改root用户密码
##方法1:
mysqladmin -u root password 'newpassword'

##方法2: 需要进入mysql数据库
update user set authentication_string=PASSWORD('newpassword') where user='root';
flush privileges;

##方法3: 需要进入mysql数据库
alter user 'root'@'localhost' identified by 'newpassword';

Mysql 8.0.20 源码编译安装

编译安装rpcsvc-proto-1.4.2包

tar xvf rpcsvc-proto-1.4.2.tar.xz
cd rpcsvc-proto-1.4.2/
./configure
make -j 2 ; make install

编译安装gcc

tar xvf gcc-10.2.0.tar.gz

cd gcc-10.2.0/

#下载必要的库
./contrib/download_prerequisites

./configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib

make -j 8 && make install

#修改软连接,查看gcc版本,或者删除旧版,将新版安装目录/bin添加到PATH变量中
mv /usr/bin/gcc /usr/bin/gcc_old
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_old
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
gcc --verson
g++ --version

编译安装cmake

tar xvf cmake-3.18.4.tar.gz

cd cmake-3.18.4/

./bootstrap --prefix=/usr/local/cmake

make -j 8 && make install

编译安装mysql

#安装相关依赖包
yum -y install make cmake gcc gcc-c++ ncurses ncurses-devel bison openssl-devel libtirpc-devel

#创建用户及用户组
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin mysql

#准备mysql目录
mkdir /data/mysql
chown mysql.mysql /data/mysql

##将压缩包解压到指定目录
tar xvf boost_1_70_0.tar.gz -C /usr/local/
tar xvf mysql-8.0.20.tar.gz

#编译安装
cd mysql-8.0.20/

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0 \
-DDOWNLOAD_BOOST=0 \
-DWITH_BOOST=/usr/local/boost_1_70_0

make -j 8 && make install

#环境变量设置
##方法1
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

##方法2
ln -s /apps/mysql/bin/* /usr/local/bin/

#准备配置文件
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid

[client]
default-character-set=utf8mb4
socket=/data/mysql/mysql.sock

[mysql]
default-character-set=utf8mb4
socket=/data/mysql/mysql.sock

[mysql]
auto-rehash
prompt="\\u@\\h [\\d]>"

#初始化数据库
mysqld --initialize-insecure --user=mysql --basedir=/apps/mysql --datadir=/data/mysql

#准备服务脚本
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld

#启动mysql
chkconfig --add mysqld
service mysqld start

#修改root用户密码
##方法1:
mysqladmin -uroot password 'newpassword'

##方法2 : 需要进入mysql数据库
alter user 'root'@'localhost' identified by 'newpassword';
posted @ 2020-10-11 19:15  吃一块云  阅读(575)  评论(0编辑  收藏  举报