目录

 

综述:

安装依赖包

安装过程

1.检查m4是否安装

2.安装gmp

3.安装mpfr

4.安装mpc

5.安装gcc

6.安装cmake

7.安装boost_1_59

8.安装mysql

9.初始化mysql

mysql的启停/登录

问题解决


综述:

最近在linux系统搭建MySQL数据库,需要搭建5.7的版本,过程中也踩了不少坑,把安装的过程做个分享,希望大家少踩坑。

本次安装是安装的msyql5.7.12 的版本,采用的是源码编译安装的方式

切记:内存至少要大于2G

下载地址:  把里面的包全部取下来 提取码:512l

安装依赖包

首先要安装依赖包,这些依赖包用来安装我们等会需要安装的工具

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

 

安装过程

1.检查m4是否安装

有些环境这个m4的包是没有安装的,需要先检查一下,如果没有安装则需要先安装m4包

rpm -qa |grep m4

没有结果则表示没有安装

tar -xvf m4-1.4.18.tar.gz

chown -R root:root m4-1.4.18          ## -->如果解压之后权限不是root,则需要执行

cd m4-1.4.18

./configure --prefix=/usr/local/m4-1.4.18              ##-->指定安装路径为:/usr/local/m4-1.4.18

make && make install

vim /etc/profile

#在最后一行加上:

export PATH=/usr/local/m4-1.4.18/bin:$PATH

source /etc/profile

 

2.安装gmp

tar xvf gmp-4.3.2.tar.bz2

cd gmp-4.3.2/            #-->如果解压之后权限不是root,则需要执行

chown -R root:root gmp-4.3.2/

./configure --prefix=/usr/local/gmp-4.3.2 -->指定安装路径

make && make install

3.安装mpfr

tar zxvf mpfr-2.4.2.tar.gz

chown -R root:root ./ 如果解压之后权限不是root,则需要执行

cd mpfr-2.4.2/

./configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2   ##-->指定安装路径和gmp路径

make && make install

4.安装mpc

tar zxvf mpc-0.8.1.tar.gz

chown -R root:root ./ 如果解压之后权限不是root,则需要执行

cd mpc-0.8.1/

./configure  --prefix=/usr/local/mpc-0.8.1  --with-mpfr=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2 -指定安装路径,mpfr和gmp路径

make && make install

ln -s /usr/local/mpc-0.8.1/lib/libmpc.so.2 /usr/lib/libmpc.so.2

ln -s /usr/local/mpc-0.8.1/lib/libmpc.so.2 /usr/lib64/libmpc.so.2

export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib

5.安装gcc

需要高版本的gcc,本次安装的是4.8.0版本的

tar zxvf gcc-4.8.0.tar.gz

chown -R root:root ./ -->如果解压之后权限不是root,则需要执行

cd gcc-4.8.0

./configure --prefix=/usr/local/gcc-4.8.0 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1

make && make install

##rm -f gcc g++ cc c++      -->此步骤执行后没删除文件且报错,可忽略

/usr/local/gcc-4.8.0/bin/x86_64-unknown-linux-gnu-c++ c++   -->此步骤也可忽略

在/etc/prfile文件末尾追加

export PATH=/usr/local/gcc-4.8.0/bin:$PATH

source /etc/profile

是新版本的gcc生效

 

6.安装cmake

tar zxvf cmake-3.7.2.tar.gz

chown -R root:root ./      #-->如果解压之后权限不是root,则需要执行

cd cmake-3.7.2

./bootstrap

gmake

gmake install

7.安装boost_1_59

安装MySQL5.7.12要求boost_1_59_0版本

 tar xvf boost_1_59_0.tar.gz

chown -R root:root ./        #-->如果解压之后权限不是root,则需要执行

cd boost_1_59_0

./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=gcc

./b2 toolset=gcc cxxflags="-std=c++11"

./b2 install

 

注意:

默认安装在/usr/local/lib目录下;头文件在/usr/local/include/boost目录下;install后面可以加参数 --prefix=/usr 来设置安装路径

如果安装msyql时提示boost版本不对应则卸载boost安装对应版本boost

boost卸载方法:

1.显示已经安装文件

rpm -qa | grep boost

2.使用一下命令依次卸载

rpm -e --nodeps xxxx

8.安装mysql

tar xvf mysql-boost-5.7.12.tar.gz

chown -R root:root ./        #-->如果解压之后权限不是root,则需要执行

cd mysql-5.7.12

cmake \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/app/mysql/mysql_data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BOOST=boost/boost_1_59_0

make && make install

#如果要重新安装需要清理make,删除CMakeCache.txt文件

make clean  

rm CMakeCache.txt  

#然后可以重新 cmake

 

解释:

-DCMAKE_INSTALL_PREFIX=/app/mysql \ mysql安装目录

-DMYSQL_DATADIR=/app//mysql /mysql_data \ >mysql数据文件目录

-DMYSQL_UNIX_ADDR=/app/mysql /mysql.sock 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock

-DDEFAULT_CHARSET=charset_name 设置服务器的字符集。

缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。

-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存储引擎选项:

MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。

静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

-DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306

-DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

9.初始化mysql

groupadd mysql

useradd -g mysql mysql

chown -R mysql:mysql /app/mysql

cp /app/mysql/support-files/mysql.server /etc/init.d/mysql

cp /app/mysql/support-files/my-default.cnf /etc/my.cnf  

chmod -R 755 /etc/init.d/mysql

bin/mysql_install_db --basedir=/app/mysql --datadir=/app/mysql/mysql_data --user=mysql

#设置开机自启

chkconfig --add mysql

chkconfig --level 345 mysql on

#添加环境变量 /etc/profile最后一行

vi /etc/profile

#在最后一行后面添加

export PATH=/app/mysql/bin:$PATH

source /etc/profile

 

vim /etc/my.cnf 文件

#我的my.cnf文件如下;

[mysqld]
basedir = /app/mysql
datadir = /app/mysql/mysql_data
port = 3306
server_id = 1

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
default-character-set=utf8

在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

 

解决方案一:改名

mv /etc/my.cnf  /etc/my.cnf.bak

以后在使用"yum update"更新系统后,需要检ls查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。

 

解决方案二:直接用mysql默认配置覆盖彻底解决(推荐)

cp /app/mysql /support-files/my-default.cnf /etc/my.cnf  

 

mysql的启停/登录

#启动mysql服务

service mysqld start

#重启mysql服务

service mysqld restart

#停止mysql服务

service mysqld stop

 

随机密码存放在/root/.mysql_secret

mysql -uroot -p

输入随机密码

 

进入mysql后要修改密码,不然无法使用

mysql> alter user 'root'@'localhost' identified by 'root';

mysql> exit;

 

然后可以操作数据库啦

mysql -uroot -p

#输入新密码root

 

mysql>show databases;

mysql>use mysql;

mysql>show tables;

mysql>quit;

 

问题解决

如果遇到:

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/***.com.pid).

就在

/usr/local/mysql/data/

目录下新建一个空文件

***.com.pid

如果遇到:

[ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'问题

vi /etc/my.cnf

这一样注释掉#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果遇到:

sql/CMakeFiles/sql.dir/itme_geofuncc.cc.o

可能是内存不够引起的,增大内存,重新进行cmake