3. MySql 5.7安装方式

本文详细介绍了在Linux环境下手动编译安装MySQL 5.7的全过程,包括关闭swap、安装依赖、配置编译参数、解决编译错误、创建交换分区、初始化数据库、注册系统服务、设置开机启动、修改root密码等关键步骤,帮助读者掌握自定义安装MySQL的方法。
摘要由CSDN通过智能技术生成
服务器ip数据库版本硬件要求
10.1.1.31mysql-boost-5.7.31.tar.gz2G/40G,内存不够需要开swap空间
10.1.1.32mysql-boost-5.7.31.tar.gz2G/40G

关闭swap

swapoff -a && sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab

安装依赖

yum -y install make cmake gcc gcc-c++ bison bison-evel ncurses-devel openssl-devel

上传到 /opt/install 目录

rz

解压:

tar -zxvf mysql-boost-5.7.31.tar.gz

进去解压后的目录配置,cd mysql-5.7.31

编译参数

配置,cmake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目(注意cmake .\后面每一行前面都有空格,不能顶格写,顶格会报错:CMake Error: The source directory does not exist.),安装包是boost包,配置时后面一定加上-DWITH_BOOST=boost

cmake .\
 -DCMAKE_INSTALL_PREFIX=/opt/app/mysql/ \
 -DSYSCONFDIR=/opt/app/mysql/ \
 -DMYSQL_DATADIR=/opt/app/mysql/data/ \
 -DDEFAULT_CHARSET=utf8mb4 \
 -DDEFAULT_COLLATION=utf8mb4_general_ci \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITH_NDBCLUSTER_STORAGE_ENGINE=0 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_EXAMPLE_STORAGE_ENGINE=1 \
 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
 -DWITH_PARTITION_STORAGE_ENGINE=1 \
 -DWITH_BOOST=boost

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新Cmake
正确截图:

解释
编译出错参考地址
https://www.jianshu.com/p/c31f404c2573
-DCMAKE_INSTALL_PREFIX 指定安装目录
-DSYSCONFDIR 配置文件(my.cnf)目录
-DMYSQL_DATADIR 数据存放目录
-DDEFAULT_CHARSET 字符集
-DDEFAULT_COLLATION 字符校对
-DENABLED_LOCAL_INFILE启用加载本地数据
-DWITH_BOOST boost库
红色部分为安装的存储引擎
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_NDBCLUSTER_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_EXAMPLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ 启用性能优化存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \ 启用分区存储引擎
相关编译参数解释,更多解释:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

编译安装

#make没有一次性成功时,请重新cmake
make make install
或者 make -j2 && make install
编译报错:
● 因为内存不够报错:
make 的报错信息
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
主要原因大体上是因为内存不足,有点坑 临时使用交换分区来解决吧
创建交换分区 并 开启

dd if=/dev/zero of=/swapfile bs=64M count=16
mkswap /swapfile
swapon /swapfile

安装完成后可以关闭交换分区 并删除交换分区 文件
swapoff /swapfile
rm /swapfile
● 磁盘空间不足
/opt/rh/devtoolset-11/root/usr/bin/ld: final link failed: No space left on device
collect2: error: ld returned 1 exit status
解决方法:扩展磁盘空间
添加my.cnf配置
vim /opt/app/mysql/my.cnf

[client]
socket = /opt/app/mysql/tmp/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
user = mysql
datadir = /opt/app/mysql/data
socket = /opt/app/mysql/tmp/mysql.sock
pid-file = /opt/app/mysql/run/mysql.pid
#取消密码验证
#skip-grant-tables
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#误操作后回滚,必配置
tmpdir = /opt/app/mysql/tmp

[mysqld_safe]
log-error = /opt/app/mysql/log/mysqld_error.log

创建MySQL用户丶用户组和相关的目录

groupadd mysql
useradd -g mysql mysql
mkdir -p /opt/app/mysql/data
mkdir -p /opt/app/mysql/log
mkdir -p /opt/app/mysql/run
mkdir -p /opt/app/mysql/tmp
touch /opt/app/mysql/log/slow.log
touch /opt/app/mysql/log/mysqld_error.log

修改mysql安装目录权限

chown -R mysql:mysql /opt/app/mysql

操作系统交换空间设置

echo 0 > /proc/sys/vm/swappiness

初始化

/opt/app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/app/mysql --datadir=/opt/app/mysql/data

注册系统服务

将mysql.server放置到/etc/init.d/mysqld中

cp /opt/app/mysql/support-files/mysql.server /etc/init.d/mysqld

设置开机启动

chkconfig --add mysqld
chkconfig mysqld on
查看(如果2–5为on的状态就OK)
chkconfig --list mysqld

启动/关闭/重启数据库/重新加载数据库

service mysqld start/stop/restart/reload

创建软连接 mysql -uroot -p方式快捷登录

ln -s /opt/app/mysql/bin/mysql /usr/bin

修改root密码

修改本地/远程root密码,将password改为需要设置的密码
/opt/app/mysql/bin/mysql -uroot -p

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新:
FLUSH PRIVILEGES;

开放网络:

放开端口:
firewall-cmd --permanent --zone=public --add-port=3306/tcp
防火墙生效:
firewall-cmd --reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GTC_GZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值