结合官方说明 CeontOS7 编译(源码)安装Mysql 5.7.28

本文详细介绍了如何在CentOS7上通过源码编译安装MySQL 5.7.28,遵循官方文档,从下载源码、解压、配置编译到启动服务、设置权限等步骤,确保无误。
摘要由CSDN通过智能技术生成

在CSDN上看了很多帖子,发现做的时候都有各种各样的问题,
索性看官网文档好了

结论!编译安装需要查看官方说明,此方法为最快方法

附上官网参考链接

使用源码进行标准安装MYSQL
https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

官方初始化数据目录
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html

源码配置选项
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#option_cmake_force_unsupported_compiler

2.10.2 Starting the Server(启动服务说明)
https://dev.mysql.com/doc/refman/5.7/en/starting-server.html

Step1下载源码包

官网下载很慢,如果有梯子会快很多,我已经下好了传到百度云大家自己下。
需要下载带有Boost版本的源码
下载地址
链接:https://pan.baidu.com/s/1EA2KRvT0OkWYfpfb3oi_QQ 密码:e2fm

step2解压

将源码上传到服务器,存放到你想要放的地址,我一般喜欢在根目录下新建一个源码包的目录便于日后管理
将源码包进行解压

tar xvf  *.tar

Step3添加用户和用户组

useradd -s /sbin/nologin mysql
groupadd mysql

Step4开始配置编译文件

这段配置中需要特别注意-DWITH_BOOST,此文件在解压后的安装包中,注意地址是否正确,可以使用pwd命令然后复制过来

cmake -DWITH_BOOST=/SourceCode/mysql-5.7.28/boost/boost_1_59_0 -DCMAKE_INSTALL_PREFIX=/work/app/mysql -DMYSQL_DATADIR=/work/app/mysql/data -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1

step5开始编译

加上-j 4会快很多

make -j 4 && make install

step6 新建数据目录

新建数据以及日志目录,官网上的方式有权限问题暂时不理解为什么因此把存储文件放到根目录并给予mysql属组以及属主权限和755权限

mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql

step7 添加my.cnf到/etc/my.cnf

我也不明白,mysql怎么连这个都不自动生成

vim /etc/my.cnf

my.cnf配置参考

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

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
user = mysql
basedir = /work/app/mysql
datadir = /data/mysql/data
pid-file = /data/mysql/mysql.pid
log_error = /data/mysql/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql-slow.log
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1024M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
performance_schema_max_table_instances = 1000
explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log_bin=mysql-bin
binlog_format=mixed
server_id   = 232
expire_logs_days = 10
early-plugin-load = ""
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M

Step8 初始化服务

官方说明及翻译
Use the server to initialize the data directory, including the mysql database containing the initial MySQL grant tables that determine how users are permitted to connect to the server. For example:
使用服务去初始化数据目录,包括mysql数据库包含的初始化Mysql 授权表 限定 那些用户被许可去连接服务,例如这样。
说白了就是初始化服务

bin/mysqld --initialize --user=mysql

这一步有坑看下方说明
这一步如果没有权限乱七八糟的问题会有一个临时的密码产生,需要记下来。
如果没有看到就要在my.cnf中的 [mysqld]下添加skip-grant-tables
然后进入到mysql修改root密码,贼麻烦
mysql修改密码
官方中还有另一种初始化的方式,有兴趣可以自己去看
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html
在这里插入图片描述

Step9 启动服务

方法一、在后台运行服务,官方方式

bin/mysqld_safe --user=mysql &

方法二、通过mysql.sever来启动服务
通过support-file中的mysql.sever来启动服务
也可以将这个文件添加到系统服务中
support-files文件地址 /work/app/mysql/support-files

cp support-files/mysql.server /etc/init.d/mysql.server

启动服务命令/重启/关闭

/etc/init.d/mysql.server start/restart/stop

Step10 设置授权其它主机能登录mysql数据库

授权10.10.10.1主机用root用户,密码为123123 登录数据库

grant all on *.* to "root"@"10.10.10.1" identified by "123123"

授权所有主机可以用root用户远程登陆 ,密码是root

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

Step11 此时可以尝试连接mysql及通过navicat登录mysql

mysql -uroot -p

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值