本文档讲述如何通过编译的方式安装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
gmake
如果没有错误,将会是下面的提示:
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/
如果没有错误,将会是下面的提示:
./b2 install
如果没有错误,将会是下面的提示:
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
如果没有错误,将会是下面的提示:
下面开始编译,编译过程较长。
make
如果没有错误,将会是下面的提示:
make install
如果没有错误,将会是下面的提示:
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
7,重置密码,并设置密码不过期。
在[mysqld]中增加下列字段,修改数据路径,并重启mysql
skip-grant-tables
如果没有错误,将会是下面的提示:
8,用空密码登录mysql。
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’;
11,取消跳过密码认证,并重启数据库后配置可在网络登录的用户。mysql不允许在跳过密码时创建用户。
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
未取消跳过密码时创建用户的错误提示。
12,配置mysql开机启动。
chkconfig mysqld on
至此mysql编译安装及简单配置完成。
附件:
本文链接地址: https://danteng.org/mysql-5-7-19-compile-install-config/