前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux[CentOS]下编译安装Mysql5.7 步骤

Linux[CentOS]下编译安装Mysql5.7 步骤

作者头像
无道
发布2019-11-13 16:50:42
1.4K0
发布2019-11-13 16:50:42
举报
文章被收录于专栏:无道编程

前言

在之前,我写了两篇关于编译安装Nginx和PHP的文章,全部手动编译。

以后可以使用那些一键的脚本,但是要明白一些底层的操作,以后才能更得心应手。一味的用那些面板、一键安装脚本,并不是一个很好的选择。

动手安装一遍,并记录一篇文章,然后以后若忘了,翻一翻文章,也就想起了。挺好。

下载安装

下载MySQL源码包

官网地址:https://dev.mysql.com/downloads/mysql/

官网现在首页是8.x的版本,若要使用5.7,得经历一番步骤:

A. 选择Source Code

B. 选择Source Code后,选择Generic Linux(Architecture Independent)

C. 点击右侧的:Looking for previous GA versions?,因为首页默认是8.x版本的:

D.

E. No thanks, just start my download.

右键复制以上的链接,或者下载到本地电脑,再上传到Linux运行。

嗯,你也可以直接运行以下命令,下载5.7.x版本: wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz 以上也是官网地址。2333

新建myqsl用户
代码语言:javascript
复制
useradd -s /sbin/nologin mysql

我们还是单独使用一个用户来管理mysql

建立目录
代码语言:javascript
复制
mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql
解压

将下载好的mysql 解压到/usr/local/mysql 目录下

代码语言:javascript
复制
mkdir /usr/local/mysql # 创建mysql安装的目录,有则不创建
tar -zxvf mysql-boost-5.7.28.tar.gz -C /usr/local/mysql/
编译安装

进入目录

代码语言:javascript
复制
cd /usr/local/mysql # 切换到mysql 安装目录
cd mysql-5.7.28 #  /usr/local/mysql 目录里面还有一个mysql-5.7.28 ,所以我们还需要进入

cmake

代码语言:javascript
复制
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost

还记得么,我们下载源码时,选择了带boost的版本,所以这里后面有个-DWITH_BOOST=boost,5.7后的版本,必须带这个参数,如果我们没选择带boost的版本,这里可能还要麻烦点。

编译安装

代码语言:javascript
复制
make && make install

编译中,时间稍微有点长【不是一般的长....,可能我虚拟机配置不是很好】

可能我虚拟机给的配置确实不行,这一步过了1个多小时 此步完成界面:

安装好了的/usr/local/mysql目录:

配置

编辑/etc/my.cnf

( 没有则创建)

代码语言:javascript
复制
vi /etc/my.cnf

有的话,应该有一些默认配置,然后贴一下网上找到的配置:

你可选择删除默认配置,粘贴以下配置。或自己配置。 以下配置内容非必须,可依据实际情况,做相应的调整!

代码语言:javascript
复制
[client]
port        = 3306
socket      = /tmp/mysql.sock

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


basedir = /usr/local/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

把安装目录用户和组更改为mysql【mysql用户和组为之前创建的】

代码语言:javascript
复制
chown -R mysql:mysql mysql

执行以上命令是在/usr/local目录,然后改目录下有你之前创建的mysql安装目录。如下:

把数据库数据目录用户和组更改为mysql ( 数据库数据目录:/data/mysql/data),方法同上! cd /data/mysql chown -R mysql:mysql data

初始化mysql
代码语言:javascript
复制
cd /usr/local/mysql/bin # 进入bin执行文件目录
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data # 执行初始化命令

注:网上网友说到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/data/mysql/data 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一直才行。如下:

初始化,没报错说明成功了:

拷贝可执行配置文件
代码语言:javascript
复制
cd support-files # 此命令在/usr/local/mysql目录下执行
cp mysql.server /etc/init.d/mysqld
启动
代码语言:javascript
复制
service mysqld start

service 命令找的文件就是/etc/init.d/目录下的可执行文件,这也是上一步操作的原因。

测试连接
代码语言:javascript
复制
./mysql -hlocalhost -uroot -p
# 这一步命令执行是在 /usr/local/mysql/bin 目录下,这也是我在写文章时经常强调的。
# 目录不对,这是一些新手用户在参考你的文章时,运行同样的命令,一直报错的重要原因之一。
修改环境变量

在/etc/profile 中新增一行

代码语言:javascript
复制
PATH=$PATH:/usr/local/mysql/bin
export PATH

保存退出,刷新生效:

代码语言:javascript
复制
source /etc/profile
设置开机自启动
代码语言:javascript
复制
systemctl enable mysqld

好了,至此mysql也配置好了。

以后的一篇可能就是nginx结合。

本篇文章全部实际操作,一步步截图,如有转载,请务必注明本站出处。 本文参考: https://blog.csdn.net/sssssscccccc/article/details/80919826 https://blog.csdn.net/zhang_referee/article/details/88212695

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 下载安装
    • 下载MySQL源码包
      • 新建myqsl用户
        • 建立目录
          • 解压
            • 编译安装
            • 配置
              • 编辑/etc/my.cnf
                • 初始化mysql
                  • 拷贝可执行配置文件
                    • 启动
                      • 测试连接
                        • 修改环境变量
                          • 设置开机自启动
                          相关产品与服务
                          云数据库 MySQL
                          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档