rpm源码安装mysql

rpm格式包源码安装mysql数据库

下载mysql包

[root@x112 ~]# wget -c https://cdn.mysql.com/archives/mysql-5.7/mysql-community-minimal-5.7.19-1.el7.src.rpm

 

官方推荐方式:

shell> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm

[root@x112 ~]# yum -y install rpm-build

[root@x112 ~]# rpmbuild --rebuild --clean  mysql-community-minimal-5.7.19-1.el7.src.rpm

Installing mysql-community-minimal-5.7.19-1.el7.src.rpm

warning: mysql-community-minimal-5.7.19-1.el7.src.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed build dependencies:

perl(Env) is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

time is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

cyrus-sasl-devel is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

libaio-devel is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

numactl-devel is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

openssl-devel is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

[root@x112 ~]# yum -y install openssl-devel  numactl-devel libaio-devel cyrus-sasl-devel time perl-devel

[root@x112 ~]# rpmbuild --rebuild --clean  mysql-community-minimal-5.7.19-1.el7.src.rpm

Installing mysql-community-minimal-5.7.19-1.el7.src.rpm

warning: mysql-community-minimal-5.7.19-1.el7.src.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed build dependencies:

perl(Env) is needed by mysql-community-minimal-5.7.19-1.el7.centos.x86_64

处理方法:

[root@x112 ~]# rpmbuild --rebuild --clean  mysql-community-minimal-5.7.19-1.el7.src.rpm --nodeps --force

Installing mysql-community-minimal-5.7.19-1.el7.src.rpm

warning: mysql-community-minimal-5.7.19-1.el7.src.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.OfQM2S

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd /root/rpmbuild/BUILD

+ rm -rf mysql-5.7.19

+ /usr/bin/mkdir -p mysql-5.7.19

+ cd mysql-5.7.19

+ /usr/bin/tar -xf /root/rpmbuild/SOURCES/mysql-5.7.19.tar.gz

+ /usr/bin/tar -xf /root/rpmbuild/SOURCES/boost_1_59_0.tar.bz2

[root@x112 boost]#

2、对boots包和mysql包进行解压到对应的目录下

[root@x112 mysql-5.7.19]##tar zxf  boost_1_59_0.tar.bz2  -C /usr/local/

[root@x112 mysql-5.7.19]# #tar zxf mysql-5.7.19.tar.gz -C /opt/

3、添加用户和组

[root@x112 mysql-5.7.19]# groupadd mysql

[root@x112 mysql-5.7.19]# useradd -M -s /sbin/nologin -r -g mysql mysql

创建安装目录和数据存放目录(生产环境一般独立磁盘)

添加一块新的硬盘创建分区sdb1并分配所有的空间

注:mysql-5.7.19.tar.gz安装时占用空间比较大,建议添加一块硬盘进行安装

 

4、编译安装

[root@x112 mysql-5.7.19]#cmake -DCMAKE_INSTALL_PREFIX=/home/mysql

-DMYSQL_DATADIR=/home/mysql/data

-DWITH_MYISAM_STORAGE_ENGINE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_MEMORY_STORAGE_ENGINE=1

-DMYSQL_TCP_PORT=3306

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DDOWNLOAD_BOOST=1

-DWITH_BOOST=/usr/local/boost

预编译报错:

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage

CMake Error: Internal CMake error, TryCompile configure of cmake failed

解决方法:

[root@x112 mysql-5.7.19]#rm -rf CMakeCache.txt

[root@x112 mysql-5.7.19]#yum install -y gcc-c++

 

官网推荐方法:

To prevent old object files or configuration information from being used, run these commands in the build direcotry on Unix before re-running CMake:(要防止使用旧的对象文件或配置信息,请在Unix上的build目录中运行以下命令,然后重新运行CMake)

shell> make clean

shell> rm CMakeCache.txt

5、安装依赖包

[root@x112 mysql-5.7.19]#yum install cmake,make,gcc,gcc-c++,bison, ncurses,ncurses-devel  -y

6、继续编译安装

[root@x112 mysql-5.7.19]#cmake -DCMAKE_INSTALL_PREFIX=/home/mysql

-DMYSQL_DATADIR=/home/mysql/data

-DWITH_MYISAM_STORAGE_ENGINE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_MEMORY_STORAGE_ENGINE=1

-DMYSQL_TCP_PORT=3306

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DDOWNLOAD_BOOST=1

-DWITH_BOOST=/usr/local/boost

[root@x112 mysql-5.7.19]#make -j 4 && make install -j 4

 

7、创建数据目录 存放数据文件

[root@x112 mysql-5.7.19]##mkdir -p /home/mysql/data/

 

8、修改目录权限

[root@x112 mysql-5.7.19]## chown -R mysql:mysql /home/mysql

 

9、创建my.cnf配置文件

[root@x112 mysql-5.7.19]#cp /home/mysql//support-files/my-default.cnf /etc/my.cnf

[mysqld]

basedir=/home/mysql

datadir=/home/mysql/data

port=3306

socket=/home/mysql/mysql.sock

symbolic-links=0

character-set-server=utf8

log-error=/var/log/mysqld.log

[mysql]

socket=/home/mysql/mysql.sock    #此项很重要,否则启动客户端连接会提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

10、配置环境变量

[root@x112 mysql-5.7.19]#echo ‘export PATH=$PATH:/home/mysql/bin/’  >> /etc/profile

11、初始化mysql数据库

[root@x112 mysql-5.7.19]#mysqld --initialize  --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

 

12、修改mysql密码

mysql > alter user ‘root’@’localhost’ identified by ‘123456’;

mysql > flush privileges;

mysql > q

13、添加启动脚本

 

[root@x112 mysql-5.7.19]#cp   support-files/mysql.server   /etc/init.d/mysqld

[root@x112 mysql-5.7.19]#chkconfig --add  mysqld

[root@x112 mysql-5.7.19]#chkconfig mysqld on

[root@x112 mysql-5.7.19]#service mysqld start

原文地址:https://www.cnblogs.com/xiaofeng666/p/13546536.html