Linux源码安装mysql 5.7.22 (cmake编译)

11 篇文章 0 订阅

本篇是在安装5.6.22基础上做了更新,以适应5.7.22-boost版本的安装,它们在安装后的配置步骤上稍有不同

目标系统CentOS7.6 64位

源码包位置/usr/local/src/mysql-boost-5.7.22.tar.gz 

以下步骤:

1、cd /usr/local/src

2、tar -zxvf mysql-boost-5.7.22.tar.gz 

3、cd mysql-5.7.22

4、安装必要的编译环境

      yum -y install kernel-headers ncurses-devel cmake gcc gcc-c++ 

5、创建mysql用户、组、数据目录

      groupadd mysql

      useradd -r -g mysql mysql

#   useradd -M -s /sbin/nologin -g mysql mysql # 这是创建一个非登录授权的用户

      mkdir -p /home/mysql/data

      chown -R mysql:mysql /home/mysql

6、预编译

cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

       仔细看预编译的结果提示,如果有错误,查看它给的错误日志文件内容,安装相关的依赖库

        重新编译之前,要清除编译缓存,使用命令:

rm -f CMakeCache.txt

7、make -j & make install

     make带上-j 参数,可充分利用多核并行编译,大大缩短编译时间

8、准备配置文件

       mv /etc/my.cnf /etc/my.cnf.bak

       vi /etc/my.cnf

       输入并保存

[client]
port            = 3306
socket          = /tmp/mysql.sock

[mysqld]
user            = mysql
port            = 3306
socket          = /tmp/mysql.sock
datadir         = /home/mysql/data

#慢查询时间 将超过1秒的视为慢查询
slow_query_log=1
slow_query_log_file=mysqld-slow.log
long_query_time=2

#fix group by problem up 5.7.9
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#fix ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA ...
log-bin-trust-function-creators=1

# binlog
server-id=1
log-bin=bin_log

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

9、初始化数据库:

cd /home/mysql/
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

执行完毕后会生成一个临时密码, 显示在控制台信息里,类似:

A temporary password is generated for root@localhost: xxxxxxxx

 先找地方记住这个密码,后续修改密码需要用到

10、启动数据库 /home/mysql/bin/mysqld_safe &

11、善后工作

  • 将mysql路径放入环境变量:在/etc/profile文件中加入:
export PATH=$PATH:/home/mysql/bin
  • 更换临时密码,通过mysql -p命令,输入以上生成的临时密码进入管理控制台,并使用以下命令更换新的密码:
set password=password("xxxxxxxx");
  • 设置开机启动,我习惯放在rc.local中:
/home/mysql/bin/mysqld_safe &

如果是新系统,特别注意要给rc.local授执行权限:

chmod +x /etc/rc.d/rc.local 

至此,大功告成!


追加近日在腾讯云服务器上安装时出现的问题:

大概包含这些类似奇奇怪怪的错误:

make[1]: *** [libmysqld/CMakeFiles/mysqlserver.dir/all] Error 2

make[1]: *** [storage/federated/CMakeFiles/federated.dir/all] Error 2

后来通过增加配置交换分区文件解决,具体原因则不清楚了:

dd if=/dev/zero of=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块
mkswap /swapfile     -- 创建SWAP文件
swapon /swapfile     -- 激活SWAP文件
swapon -s            -- 查看SWAP信息是否正确

配置之后,清除缓存make clean,重新编译即可

安装成功后,如果不想要交换分区了, 可以删除:

# swapoff /swapfile
# rm -rf /swapfile

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值