简介
MySQL的安装方式又很多,比如二进制直接解压,利用rpm包方式安装,MySQL5.5之前可以用make,在MySQL5.5之后源码编译需要用CMake。这里简单介绍一下如何源码安装MySQL5.7。
一般二进制的方式就可以了,如果需要定制可以用CMAKE。
前提
- CMake
- ncurses 函数库
- 安装的时候需要Boost C++库,必须安装Boost1.59.0,安装之后,cmake需要加一个参数表明Boost文件所在的位置
cmake . -DWITH_BOOST=/usr/local/boost_1_59_0 #这里指定Boost位置
安装
第一步:安装CMake
yum install cmake -y
第二步:安装依赖包
yum groupinstall "Development Tools" -y #安装开发包组,以防缺包
yum install ncurses ncurses-devel gcc gcc-devel gcc-c++ -y
第三步:创建mysql用户
useradd -M -s /sbin/nologin mysql
第四步:安装MySQL5.7
源码包可以在官网下载,因为安装需要Boost库,所以这里下载的源码包直接下载一个包含Boost的源码包
官网的下载地址
https://dev.mysql.com/downloads/mysql/
下载好之后,解压
tar xf mysql-boost-5.7.24.tar.gz
cd mysql-5.7.24/
利用CMake构建MySQL5.7
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7 \
-DMYSQL_DATADIR=/usr/local/mysql5.7/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql5.7/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=./boost/boost_1_59_0
CMake编译安装过程会把指定的配置信息硬编码到程序文件中
这些配置项可以根据需要进行调整,
构建完成之后直接安装
make && make install
第五步:初始化数据库
/usr/local/mysql5.7/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data
初始化之后会默认给你生成临时密码,这个要先记一下
如果不需要它帮你生成密码可以使用–initialize-insecure选项
第六步:设置一下路径以及权限
chown -R mysql.mysql /usr/local/mysql5.7
echo 'PATH=/usr/local/mysql5.7/bin/:$PATH' >>/etc/profile
source /etc/profile
第七步:创建配置文件/etc/my.cnf
这里的参数需要按照部署的环境更改
[root@localhost mysql-5.7.24]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql5.7
datadir=/usr/local/mysql5.7/data
socket=/usr/local/mysql5.7/data/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql5.7/data/err.log
pid-file=/usr/local/mysql5.7/data/mysql.pid
!includedir /etc/my.cnf.d
第八步:启动数据库
还有个点比较奇怪,MySQL5.7可能需要手动创建错误日志文件
touch /usr/local/mysql5.7/data/err.log
chown -R mysql.mysql /usr/local/mysql5.7
启动数据库
mysqld_safe &
第九步:连接数据库
mysql -uroot -p -S /usr/local/mysql5.7/data/mysql.sock
参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html