MySQL 5.7.19编译安装及简单配置方法

本文档讲述如何通过编译的方式安装MySQL5.7.19,并进行简单配置。需要服务器配置不低于2CPU,2G内存,20G硬盘,否则不一定能顺利安装。安装前需要cmake和boost两个组件,可在附件中下载。

mysql安装路径/usr/local,数据路径/mysql,root密码123456

下面进行依赖安装:

1,安装cmake

tar -xf cmake-3.5.2.tar.gz

cd cmake-3.5.2

./bootstrap

img

gmake

如果没有错误,将会是下面的提示:

img

gmake install

至此,cmake安装完成。

2,boost,安装时需指定路径(–prefix),默认路径能安装,但找不到。./b2 install安装时间很长。

tar -xf boost_1_59_0.tar.gz

cd boost_1_59_0

./bootstrap.sh –prefix=/usr/local/

如果没有错误,将会是下面的提示:

img

./b2 install

如果没有错误,将会是下面的提示:

img

3,安装依赖ncurses-devel,这里就用yum进行了。

yum install ncurses-devel -y

至此,依赖安装完成,下面开始mysql编译。

4,编译MySQL,但这里的编译是通过CMake而非configure进行的,指定boost的源码路径,这里很奇怪,必须先安装boost这里也要指定源码路径,否则失败。

参数说明:

-DCMAKE_INSTALL_PREFIX=安装路径

-DMYSQL_DATADIR=默认数据路径

-DSYSCONFDIR=配置文件路径

-DMYSQL_TCP_PORT=默认端口

-DMYSQL_UNIX_ADDR=socket路径

-DWITH_BOOST=boost源码路径

tar -xf mysql-boost-5.7.19.tar.gz

cd mysql-5.7.19

/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX=/usr/mysql -DMYSQL_DATADIR=/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DENABLE_PROFILING=1 -DWITH_BOOST=/root/lnmp/mysql/boost_1_59_0

如果没有错误,将会是下面的提示:

img

下面开始编译,编译过程较长。

make

如果没有错误,将会是下面的提示:

img

make install

如果没有错误,将会是下面的提示:

img

5,修改数据目录权限和复制启动脚本

useradd mysql

mkdir /mysql

chown -R mysql.mysql /mysql && chown -R mysql.mysql /usr/mysql

cp -a /usr/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

ln -s /usr/mysql/bin/mysql /usr/bin/mysql

chmod +x /usr/bin/mysql

6,初始化数据库,5.5版本后会自动生成过期的root密码,需配置跳过密码并修改为不过期。顺序:1,跳过验证;2,修改root密码;3,设置密码不过期。

cd /usr/mysql/bin

./mysqld –initialize –user=mysql

img

7,重置密码,并设置密码不过期。

在[mysqld]中增加下列字段,修改数据路径,并重启mysql

skip-grant-tables

img

如果没有错误,将会是下面的提示:

img

8,用空密码登录mysql。

img

9,修改root密码为不过期。

use mysql ;

update user set password_expired=’N’ where user=’root’;

10,修改密码,5.7已弃用passwd字段,UPDATE user SET password=PASSWORD(‘123456′) WHERE user=’root’;命令已无效,用下面的命令,另外,MySQL5.7默认无grant权限,所以要加with grant option参数。

update mysql.user set authentication_string=password(‘123456′) where user=’root’ and Host = ‘localhost’;

img

11,取消跳过密码认证,并重启数据库后配置可在网络登录的用户。mysql不允许在跳过密码时创建用户。

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

img

未取消跳过密码时创建用户的错误提示。

img

12,配置mysql开机启动。

chkconfig mysqld on

至此mysql编译安装及简单配置完成。

京ICP备18006825号