以前最烦就是源码编译安装mysql5.7 ,原因无它 — 很麻烦,但最近因学习需要避免不了,主要介绍在centos7 下源码编译安装mysql5.7 。

安装

安装依赖包

yum install -y gcc gcc-c++ cmake ncurses ncurses-devel bison

下载相应源码包

mysql5.7 编译安装需要boost 库,这里官网下载含boost的源码包

这里提供下载地址

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz

添加用户

useradd -s /sbin/nologin mysql

建立所需目录并更改所有者为mysql

mkdir -p /data/mysql/data

chown -R mysql:mysql /data/mysql/data

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

mkdir -p /usr/local/mysql && tar -zxvf mysql-boost-5.7.25.tar.gz -C /usr/local/mysql/

切换到/usr/local/mysql 目录下,编译安装

cd /usr/local/mysql/mysql-5.7.25 && cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost && make && make install

配置

编辑/etc/my.cnf ( 如果没有则创建)

我这边的一个配置文件内容如下

[client]

port = 3306

socket = /dev/shm/mysql.sock

[mysqld]

port = 3306

socket = /dev/shm/mysql.sock

user = mysql

basedir = /usr/local/mysql

datadir = /data/mysql/data

pid-file = /run/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

chown -R mysql:mysql /usr/local/mysql

chown -R mysql:mysql /data/mysql/data

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

注:/data/mysql/data目录下一定要为空才行

初始化mysql

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

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

拷贝可执行配置文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

注:有些网友文章在这一步中会写到从/usr/local/mysql/support-files 这个目录复制my-default.cnf 到/etc/下作为my.cnf 配置文件,我这里没有这个文件,所以直接在配置环节,自己配置了一个my.cnf文件。

启动

systemctl start mysqld

注:这一步也是很容易出问题的地方,当这里出现问题的时候,不要慌,看mysql 错误日志的内容,一般根据mysql 错误日志的提示都能很好的解决问题。

如果Starting MySQL.. ERROR! The server quit without updating PID file, 可以修改my.cnf 修改pid文件目录为 /tmp/mysql.pid

修改环境变量,在/etc/profile 中新增一行

PATH=/usr/local/mysql/bin:$PATH

保存退出

source /etc/profile

测试连接

mysql -h localhost -uroot -p

无需密码即可连接成功

设置开机自启动

systemctl enable mysqld

---配置MySQL可远程访问:---------------------------------------------------------------------------------------------------------------------------------------------------------------------

mysql -h localhost -uroot -p

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

flush privileges;

调试过程:

rm -rf /data/mysql/data

mkdir -p /usr/local/mysql && chown -R mysql:mysql /usr/local/mysql

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

touch /dev/shm/mysql.sock && chown mysql:mysql /dev/shm/mysql.sock && chmod 777 /dev/shm/mysql.sock

touch /run/mysql.pid && chmod 777 /run/mysql.pid && chown mysql:mysql /run/mysql.pid

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

mysql -h localhost -uroot -p

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

update mysql.user set authentication_string = password("---newPwd---") where user = "root";

select Host, User, authentication_string from mysql.user;

flush privileges;

quit;

systemctl start mysqld

systemctl status mysqld

systemctl restart mysqld

ps -ef | grep mysql

mysqld --defaults-file="F:\WorkSoftWare\mysql\mysql-5.7.23-winx64\bin\my.ini" --console --skip-grant-tables

mysql5.7.25源码安装_源码编译安装 mysql5.7.25相关推荐

  1. PostgreSQL源码学习(一)编译安装与GDB入门

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 PostgreSQL源码学习(一)编译安装与GDB入门 前言 一.安装PostgreSQL 1.获取源码 2.配置 3.编译 3.安装 ...

  2. linux安装源文件出现错误,编译安装源码时出现错误的解决方法

    由于软件更新速度比较快,所以我们经常需要自己动手去编译安装一个软件,但是编译安装时难免不出现错误,像LAMP,LNMP在好多平台我都是手动编译的,也出现过不少错误,以下总结编译安装出现错误时的解决方法 ...

  3. ubuntu14.04 nginx php编译安装,Ubuntu 14.04 编译安装 Nginx

    在Ubuntu 14.04下编译安装 Nginx过程笔记. 下载源码包 nginx 地址: http://nginx.org/en/download.html 编译前先安装两个包: 直接编译安装会碰到 ...

  4. linux rsync yum安装,Linux安装yum安装rsync 、Linux编译安装最新版rsync

    Loading... # Linux安装yum安装rsync .Linux编译安装最新版rsync ## 针对CentOS采用 yum 安装 ### 安装 ``` yum install rsync ...

  5. mysql5.6.39编译安装_源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!...

    1.切换到src目录 cd /usr/local/src/ 2. 下载mysql免编译二进制包 免编译的mysql二进制包5.6源码包: wget http://mirrors.163.com/mys ...

  6. mysql 5.7.14编译安装_源码编译安装mysql-5.7.14-阿里云开发者社区

    1.下载并上传 mysql-5.7.14.tar.gzview plain tar -zxf msql-5.7.14.tar.gz yum -y install gcc gcc-c++ ncurses ...

  7. mysql 安装_源码安装mysql

    源码安装mysql 什么是源码 #! /bin/bash echo 'hello'高级语言 ➡️机器码01001001 源码安装mysql逻辑 1.源码包 ⬇ 2.预编译 1.检查当前的操作系统. 2 ...

  8. python源码包安装_源码包安装python2.7.6和ipython1.2.1

    1. CentOS 6.X的安装就不多说 2.安装包Python2.7.6 和Ipython的下载官网都有,自行下载. 注意,不要去卸载系统自带的python程序,在CentOS6.X中python为 ...

  9. mysql odbc 源码安装_源码安装 MySQL Community Server 5.6.26

    由于CentOS 6 现在yum源的mysql-server 版本还是5.1 的,已经比较老了 况且后续服务可能需要mysql的头文件, yum安装的没有找不到头文件,索性就编译安装. 1,直接下载源 ...

最新文章

  1. 解决libuuid.so.1 no version information available问题
  2. SAP Spartacus 因为 refresh token 刷新令牌过期后显示用户重新登录页面的逻辑
  3. 华为鸿蒙话题作文800字,关于鸿蒙OS 华为最高层发布最新通知:统一口径-华为,智能手机,鸿蒙...
  4. js笔记(六)事件、正则
  5. synchronized原理_synchronized 关键字底层原理
  6. 计算机启动类型bios,UEFI还是Legacy BIOS?如何确定Windows启动类型
  7. Spring----JmsTemplate
  8. 《Jquery实战》第3版:译者序 Frank Xu Lei
  9. 微信小程序开发需要了解的三个内核技术
  10. 实战篇—关于某产品的切分细则
  11. php与mysqli,如何通过PHP与MySQLi保持联系
  12. C#.net的常用函数列表
  13. 【光学】基于matlab涡旋光与球面波的干涉【含Matlab源码 597期】
  14. python画心形代码大全_七夕,程序员的表白代码
  15. 黑马程序员, html css javascript 前端笔记 pink老师教程
  16. 电脑ps4,Windows电脑玩PS4游戏,索尼:先来升级Win10吧
  17. Scheme 编程语言(1)介绍
  18. java开发常用软件下载地址及教程。
  19. Cocos2d-x 3.2 lua飞机大战开发实例(三)道具的掉落,碰撞检测,声音,分数,爆炸效果,完善游戏的功能细节
  20. 办公邮箱哪个比较好,企业电子邮箱官网在哪里?

热门文章

  1. 一文搞懂 Python 的 import 机制
  2. Python函数传参方式超级大汇总
  3. Python的Mixins机制
  4. Python属性访问拦截器的用法
  5. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 1.)(python/c/c++版)(笔记)
  6. 函数式编程是啥玩意?map() reduce()(reduce()函数将数字列表转换为x进制数字)闭包、装饰器、偏函数
  7. python numpy.r_ 与 numpy.c_的用法
  8. Concurrent包下的常用并发类和普通类之间的区别
  9. 获取浏览器窗口_全面认识区块链浏览器--看穿币圈的蒙蔽与欺骗!
  10. vue 添加完数据后刷新页面_vue form 表单提交后刷新页面的方法