Mysql系列:Mysql5.7编译安装--系统环境:Centos7 / CentOS9 Stream
Mysql系列:Mysql5.7编译安装
系统环境:Centos7 / CentOS9 Stream
1:下载mysql源码包
https://dev.mysql.com/downloads/mysql/5.7.html
downloads 选择MySQL Community Server>source_code>Generic Linux (Architecture Independent), Compressed TAR Archive -> 选择需要的mysql版本,下载xxx.tar.gz包
cd /tmp
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.43.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
所需资料百度网盘地址
链接:
https://pan.baidu.com/s/1-C0JPrWZVCb2opkiYEUwqQ?pwd=yyds
提取码:yyds
2:安装前准备
添加禁止登陆的mysql用户
groupadd mysql
useradd -g mysql -s /bin/nologin mysql
创建文件路径
mkdir -p /data/mysql # mysql数据路径
mkdir -p /usr/local/mysql # mysql服务路径
mkdir -p /var/run/mysql # mysql pid路径
mkdir -p /var/log/mysql # mysql log路径
安装扩展依赖
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
5.7.5以后都需要安装boost
放到 /usr/local/目录
tar xzf /tmp/boost_1_59_0.tar.gz
mv /tmp/boost_1_59_0 /usr/local/
/usr/local/boost_1_59_0/bootstrap.sh
/usr/local/boost_1_59_0/b2 install
解压
cd /tmp
tar -zxvf mysql-5.7.43.tar.gz
cd mysql-5.7.43/
3:编译安装
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DMYSQL_UNIX_ADDR==/data/mysql/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DMYSQL_USER=mysql
说明:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装目录
-DMYSQL_DATADIR=/data/mysql \ #mysql数据文件存放目录
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ #指定mysql.sock地址 -DSYSCONFDIR=/usr/local/mysql/etc MySQL配置文件路径
3.1:cmake常见问题
如果失败了,请删除CMakeCache.txt文件
1)CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it
with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
解决:
1:
cd /usr/local/boost
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
2:cmake添加参数
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
重新cmake编译
3.2:make安装
make && make install
3.3:make常见问题-内存不足
错误: c++: internal compiler error: Killed (program cc1plus) mysql编译安装过程内存不足,安装需要2G内存
解决:
# dd if=/dev/zero of=/swapfile bs=1k count=4096000 --获取要增加的4G的SWAP文件块
# mkswap /swapfile -- 创建SWAP文件
# swapon /swapfile -- 激活SWAP文件
# swapon -s -- 查看SWAP信息是否正确
注意, swapfile文件的路径在/var/下
编译完后, 如果不想要交换分区了, 可以删除:
# swapoff /swapfile
# rm -fr /swapfile
重新cmake -> make && make install
4:配置***/etc/my.cnf***
cp /etc/my.cnf /etc/my.cnf.bak
vim /etc/my.cnf
[client]
port = 3306
socket = /data/mysql/mysql.sock
default-character-set = utf8mb4
[mysqld]
port = 3306
user = mysql
pid-file = /var/run/mysql/mysql.pid
socket = /data/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql/
log_error = /var/log/mysql/error.log
slow_query_log = 1
long_query_time = 3
slow_query_log_file = /var/log/mysql/slow.log
performance_schema = 0
explicit_defaults_for_timestamp
secure-file-priv=''
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
init-connect = 'SET NAMES utf8mb4'
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
5:初始化数据
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
注: 之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃“–initialize”会生成一个随机密码(~/.mysql_secret),而”–initialize-insecure”不会生成密码 –datadir目标目录下不能有数据文件
6:配置环境变量
vim /etc/profile.d/mysql.sh
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
执行source让环境变量立即生效
source /etc/profile
7:将mysql 加入到systemctl中
vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=The Mysql Process Manager
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/mysql/mysql.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false
[Install]
WantedBy=multi-user.target
执行:
systemctl daemon-reload
8:管理MySQL
注意,在这一步可能会遇到很多问题,请确保权限正常
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/share/mysql/
chmod -R 777 /var/run/mysql
启动mysql
systemctl start mysql
查看mysql状态
systemctl status mysql
停止mysql状态
systemctl stop mysql
9:配置MySQL安全配置向导mysql_secure_installation
[develop@wd87 data]$ /usr/local/mysql/bin/mysql_secure_installation
Securing the MySQL server deployment. Connecting to MySQL using a
blank password. VALIDATE PASSWORD PLUGIN can be used to test
passwords and improve security. It checks the strength of password and
allows the users to set only those passwords which are secure enough.
Would you like to setup VALIDATE PASSWORD plugin?
输入要安装验证密码插件吗?
Press y|Y for Yes, any other key for No: y There are three levels of
password validation policy: LOW Length >= 8 MEDIUM Length >= 8,
numeric, mixed case, and special characters
数字、混合大小写和特殊字符
STRONG Length >= 8, numeric, mixed case, special characters and dictionary
file
输入密码安全等级一般选择 MEDIUM
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 Please set the
password for root here.
输入新密码
New password:
确认密码
Re-enter new password:
Estimated strength of the password: 100
输入是否继续使用提供的密码?
Do you wish to continue with the password provided? (Press y|Y for
Yes, any other key for No) : y By default, a MySQL installation has
an anonymous user, allowing anyone to log into MySQL without having to
have a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother. You should
remove them before moving into a production environment.
输入是否删除匿名用户?
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success. Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at the root
password from the network.
输入不允许root远程登录?
Disallow root login remotely? (Press y|Y for Yes, any other key for
No) : y Success. By default, MySQL comes with a database named
‘test’ that anyone can access. This is also intended only for testing,
and should be removed before moving into a production environment.
输入删除测试数据库并访问它
Remove test database and access to it? (Press y|Y for Yes, any other
key for No) : y
- Dropping test database… Success.
- Removing privileges on test database… Success. Reloading the privilege tables will ensure that all changes made so far will take
effect immediately.
重新加载特权表将确保所有更改到目前为止所作的规定将立即生效。
Reload privilege tables now? (Press y|Y for Yes, any other key for
No) : y Success.
All done!
Mysql系列:Mysql5.7编译安装--系统环境:Centos7 / CentOS9 Stream的更多相关文章
- MySQL 系列(一)安装
MySQL 系列(一)安装 以 Centos7 下安装 MySQL 5.6 为例. 一.环境准备 (1) 下载 下载地址: https://dev.mysql.com/get/Downloads/My ...
- Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
首先,介绍一下MySQL的几种安装方式 1.RPM.Yum 的安装方式:安装方便.安装速度快,无法定制 2.二进制:不需要安装,解压即可使用,不能定制功能 3.编译安装:可定制,安装慢. 编译安装中需 ...
- centos7.2 mysql5.5编译安装
环境 centos7.2 源码包mysql5.5.38 mysql5.5开始,源码配置编译工具configure变成了cmake,所以先要去把cmake装上.并安装make,bison,cmake,g ...
- LNMP源码编译安装(centos7+nginx1.9+mysql5.6+php7)
1.准备工作: 1)把所有的软件安装在/Data/apps/,源码包放在/Data/tgz/,数据放在/Data/data,日志文件放在/Data/logs,项目放在/Data/webapps, mk ...
- 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)
[需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...
- [教程]centos卸载、安装mysql(源码编译安装方式)
-----------1 卸载系统自带的msyql包 rpm -qa|grep mysql rpm -e --nodeps mysql-server-5.1.71-1.el6.x86_64 --强制卸 ...
- centos6 编译安装 mysql5.6----------centos7编译安装MySQL5.7
centos6 编译安装 mysql5.6 安装依赖包 yum install -y ncurses-devel libaio-devel 安装cmake编译工具 cmake 定制功能:存储引擎.字 ...
- CentOS下MySQL 5.7.9编译安装
MySQL 5.7 GA版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复. MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化 ...
- Mysql 5.6 Cmake 编译安装
MySQL编译安装 环境: OS: CentOS 6.6x64 mini mysql: mysql-5.6.251. mysql 下载: http://dev.mysql.com/downloads/ ...
- MySQL5.5编译安装以及Debug
MySQL5.5以上版本安装是需要cmake 安装步骤: 设置编译参数cmake -DCMAKE_INSTALL_PREFIX='/data1/guosong/mysql_debug' -DDEF ...
随机推荐
- 使用debezium实现cdc实时数据同步功能记录
Debezium 是一个用于变更数据捕获的开源分布式平台.能够保证应用程序就可以开始响应其他应用程序提交到您数据库的所有插入.更新和删除操作.Debezium 持久.快速,因此即使出现问题,您的应用程 ...
- STL-RBT_map,set模拟实现
set #include"26RBT_container.h" namespace test { //set通过普通迭代器使用const迭代器实现限制key不能被修改 templa ...
- [Linux] ubuntu系统使用zfs记录
关于zfs 之前从B站视频里面了解到了btrfs这个文件系统,说是能够实现cow,然后我第一时间觉得这是个极好的特性,结果后来才发现,使用的时候并不多,而且只能通过cp --reflink的方式使用, ...
- React函数式组件使用@emotion时一定要注意的问题!
怎么说呢,一个坑,踩了两天,总觉得是useSate和input的传值方法问题 在useMemo和useCallback反复测试问题 最后没办法,通过最傻方式,一点点注释代码,发现了问题 const C ...
- netcore linux ffmpeg 首帧图
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-r ...
- 在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!
写在开头 经过上几篇博文的学习,我们知道在Java中可以通过new Thread().start()创建一个线程,那今天我们就来思考另外一个问题:线程的终止 自然终止有两种情况: 1. 线程的任务执行 ...
- Spring Boot 2.0 新人会踩的坑--启动报404错误
转载自:http://www.javaman.cn/channels/sb2 启动程序,验证效果 根据图示,点击按钮,来启动 Spring Boot Web 程序, 查看控制台输出: . ____ _ ...
- ypipe, zmq的核心部件,无锁读写的管道。
必须指出,无锁读写只限于单个读跟单个写之间,读与读,还有写与写之间必须确保同步.所以ypipe不必读写锁rwlock或者读写之间的锁,但需要读锁跟写锁两个锁,在读端之间或在写端之间仍然是临界资源.本质 ...
- 编译器与Makefile
编译器与Makefile 目录 编译器与Makefile gcc/g++/clang clang gcc g++ 编译器过程 Makefile 什么是Makefile Makefile规则 变量 in ...
- GdbServer和libuuid移植到HISI3520d
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...