目录
综述:
安装依赖包
安装过程
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
有些环境这个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
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
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
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
需要高版本的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生效
tar zxvf cmake-3.7.2.tar.gz
chown -R root:root ./ #-->如果解压之后权限不是root,则需要执行
cd cmake-3.7.2
./bootstrap
gmake
gmake install
安装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
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将下载谷歌所使用的测试套件运行单元测试。
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服务
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