从5.5开始使用cmake编译源码安装MySQL数据库。
首先我们需要去官网下载源‘
https://downloads.mysql.com/archives/community/
然后我们选择最后源一个下载;
下载完成之后,保存到本地!然后我们进入正题!
1、安装开发工具和开发包
yum install make gcc gcc-c++ cmake bison-devel ncurses-devel -y
yum install libaio libaio-devel openssl-devel -y
yum install perl-Data-Dumper -y
yum install net-tools -y
2、编译安装MySQL
首先我们来上传源:
我们还是老样子,在根目录下创建一个soft文件夹,然后将源上传到这个文件夹中;
将源移动到/soft;
解压:
[root@localhost soft]# tar xf mysql-boost-5.7.30.tar.gz -C /soft/
首先我们得创建这两个文件夹;
## 使用cmake编译MySQL
## cmake指定编译选项的方式不同于make,其实现方式对比如下:
## ./configure cmake .
## ./configure --help cmake . -LH or ccmake .
## 注意:如果想清理此前的编译所生成的文件重新编译,则需要使用如下两条命令:
## make clean;rm CMakeCache.txt(此文件是由于编译错误产生的,一旦第一次没有成功后就会产生,当编译信息修改后再次编译时,一定要先删除此文件,否则会一直失败)
cd /soft/mysql-5.7.30/
添加用户和组:
因为我们显示已经有了一个MySQL组了,所以我们现在来查看一下组的信息:
cat /etc/group
然后我们再为其创建用户
当然如果已存在的话,我们就不需要多此一举了!
cmake -DCMAKE_INSTALL_PREFIX=/soft/mysql \
-DMYSQL_DATADIR=/soft/mysql/data -DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 \
-DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/soft/mysql-5.7.30/boost/boost_1_59_0/ ##一定不能写错;
这么一长串只是一条命令而已,其中没行最后的反斜杠表示的是换行的意思!
编译安装:
[root@localhost mysql-5.7.30]# make && make install
3.初始化
/soft/mysql/bin/mysqld --initialize --user=mysql --datadir=/soft/mysql/data --basedir=/soft/mysql/
随机密码一定要记下:!mRIeODoc3ak
4. 为mysql提供主配置文件
cd /soft/mysql/
\cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
# 添加如下行指定mysql数据文件的存放位置:
[mysqld]
datadir = /soft/mysql /data
5. 为mysql提供sysv服务脚本
cp /soft/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
6.修改PATH环境变量,让系统可以直接使用mysql的相关命令
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/soft/mysql/bin
source mysql.sh
7.启动MySQL
systemctl start mysqld
进入MySQL:
这里MySQL还不能正常使用,原因是没有修改密码,现在我们来修改一下;
修改完成,退出重新进一下;
可以正常使用;