第一步:下载安装包
cmake:
下载地址:https://cmake.org/download/
下载安装包:https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz
ncurses_devel:
下载地址:http://ftp.gnu.org/gnu/ncurses/
下载安装包:http://ftp.gnu.org/gnu/ncurses/ncurses-5.8.tar.gz
MySQL:
下载地址:https://dev.mysql.com/downloads/file/?id=471658
下载安装包:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
用wget方法来下载安装包 # wget 下载安装包的路径
我这里都是下载在/root/lamp/文件中的,格式为.gz,所以用tar -zxvf 文件名 来解压
准备好之后开始一个一个安装
第二步:安装cmake
[root@iZ2ze5cti43o69css0svslZ lamp ]#cd cmake-3.9.0
[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# ./bootstrap
[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# gmake
[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# gmake install
出现这个表示cmake安装成功了。
第三步:安装ncurses_devel
[root@iZ2ze5cti43o69css0svslZ lamp ]#cd ncurses-5.8
[root@iZ2ze5cti43o69css0svslZ ncurses-5.8]# ./configure --with-shared --without-debug --without-ada --enable-overwrite
[root@iZ2ze5cti43o69css0svslZ ncurses-5.8]#make && make install
第四步:安装MySQL
[root@iZ2ze5cti43o69css0svslZ lamp]# cd mysql-5.7.19
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# make && make install
第五步:添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#groupadd mysql
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# useradd -r -g mysql mysql
* useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
* useradd -g参数表示把mysql用户添加到mysql用户组中。
第六步:设置权限
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chmod u+x,g+x,o+x /usr/local/mysql
也可以这么写
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chmod a+x /usr/local/mysql
第七步:设置目录的所有者(mysql.mysql:mysql用户组里面的mysql用户)
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R mysql.mysql /usr/local/mysql //mysql用户组里面的mysql用户所有
第八步:初始化 MySQL 配置表
备份my.cnf配置文件
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cp /etc/my.cnf /mnt/
拷贝服务器服务器配置文件
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cd /usr/local/mysql/support-files/
[root@iZ2ze5cti43o69css0svslZsupport-files]#cp my-default.cnf /etc/my.cnf
cp:overwrite `/etc/my.cnf'? y
添加mysql启动命令
[root@iZ2ze5cti43o69css0svslZ support-files]#cp mysql.server /etc/init.d/mysqld
[root@iZ2ze5cti43o69css0svslZ support-files]#cd ../
[root@iZ2ze5cti43o69css0svslZ mysql]# cd bin/
将mysql添加到系统的环境变量里
[root@iZ2ze5cti43o69css0svslZbin]# vim /root/.bash_profile
10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
刷新环境变量文件
[root@iZ2ze5cti43o69css0svslZ bin]# source /root/.bash_profile
查看mysql添加到环境变量
[root@iZ2ze5cti43o69css0svslZ bin]#echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/mysql/bin
测试
[root@iZ2ze5cti43o69css0svslZ bin]#which mysql
/usr/local/mysql/bin/mysql
MySQL5.7以后初始化是这样的:
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
执行之后注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码执行
第九步:将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R root /usr/local/mysql
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R mysql /usr/local/mysql/data
这是避免数据库恢复出厂设置,保护数据。
第十步:mysql5.7配置文件需要修改my.cnf关键配置, mysql5.7之前默认配置文件中是有配置项的,不用手动修改
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# vi /etc/my.cnf
进入文件修改配置
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sockl
后台运行mysql服务
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysqld_safe --usr=mysql &
&符号,表示所在的命令后台执行
第十一步:将/usr/local/mysql/support-files/mysql.server拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chmod +x /etc/init.d/mysql
把mysql注册为开机启动的服务
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chkconfig --add mysql
查看一下是否添加成功
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chkconfig --list mysql
第十二步:mysql服务的开启和关闭
开启:
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#/etc/init.d/mysql start 或者 serivce mysql start
关闭:
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#/etc/init.d/mysql stop 或者 service mysql stop
查看mysql是否启动:
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# ps -a|grep mysql
第十三步:测试MySQL
[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysql -u root -p
这里的密码就是之前初始化数据库时最后一行出现的密码
这样你就已经进入mysql了。
mysql5.7版本会生成一个初始化密码,需要我们重新设置密码才能真正使用数据库
mysql> SET Password=password('123456');
修改密码之后需要刷新一下用户的权限
mysql> flush privileges;
quit:退出数据库
退出后再进入mysql就是使用你自己设置的密码了,同时也可以真正使用mysql
安装时遇到的问题:
1、CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
This CMake script will look for boost in
it will download and unpack it (in that directory) for you.
If you are inside a firewall, you may need to use an http proxy:
export http_proxy=http://example.com:80
Call Stack (most recent call first):
cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:491 (INCLUDE)
这个是因为缺少boost包
下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
下载一个boost包,解压后将这个文件夹放到/usr/lcoal/下面,
在预编译时添加相应的选项:在cmake的最后添加-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可
2、c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
这个主要是因为内存不足引起的
参考解决办法:http://www.jackxiang.com/post/8677/
摘记:
1、MySQL5.7版本之后user表中没有password字段了,改成了 authentication_string存用户密码。
2、在user表中创建一个用户:
mysql> CREATE USER 'admin'@'%'IDENTIFIED BY '123456'; //这个用户就可以用navicat for mysql工具远程连接
创建成功之后一定要记得刷新用户权限:mysql> flush privileges;
3、登入mysql时报这个错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
如果你的my.cnf已经保证socket的路径配置正确,还报这样的错误,那么你需要做一个软连接,
例如:# ln -s /home/mysql/mysql.sock /tmp/mysql.sock