热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql5.8my.cnf,mysql5.7,5.8源码安装

#MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的安装才可以正常运行。#否则会报CMakeErroratcmak

#MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的安装才可以正常运行。#否则会报CMake Error at cmake/boost.cmake:81错误

1.下载mysql ,这里官网下载含boost的源码包 直接用即可 无需另外在下载boost

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

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

5.8下载地址

下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

国内镜像:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

1

2

3

4

5

6

7

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

wgethttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

5.8下载地址

下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

国内镜像:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

安装所需依赖支持

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

1

2

yum-yinstallgccgcc-c++ncursesncurses-develcmakeopenssl-devel

添加用户

useradd -s /sbin/nologin mysql

1

useradd-s/sbin/nologinmysql

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

mkdir -p /data/mysql/data

chown -R mysql:mysql /data/mysql

1

2

mkdir-p/data/mysql/data

chown-Rmysql:mysql/data/mysql

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

#没有目录自己创建

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

1

2

#没有目录自己创建

tar-zxvfmysql-boost-5.7.25.tar.gz-C/usr/local/mysql/

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

cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost

1

cmake-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_BOOST=boost

第二种编译安装方式:

cd mysql-5.7.28

cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DWITH_BOOST=boost \

-DMYSQL_DATADIR=/data/mysql/ \

-DMYSQL_USER=mysql \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_DEBUG=0 \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_LIBWRAP=0 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

第二种编译安装方式:

cdmysql-5.7.28

cmake.\

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\

-DWITH_BOOST=boost\

-DMYSQL_DATADIR=/data/mysql/\

-DMYSQL_USER=mysql\

-DWITH_INNOBASE_STORAGE_ENGINE=1\

-DWITH_ARCHIVE_STORAGE_ENGINE=1\

-DWITH_BLACKHOLE_STORAGE_ENGINE=1\

-DWITH_PARTITION_STORAGE_ENGINE=1\

-DWITHOUT_MROONGA_STORAGE_ENGINE=1\

-DWITH_EXTRA_CHARSETS=all\

-DWITH_DEBUG=0\

-DWITH_READLINE=1\

-DWITH_SSL=system\

-DWITH_ZLIB=system\

-DWITH_LIBWRAP=0\

-DENABLED_LOCAL_INFILE=1\

-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock\

-DDEFAULT_CHARSET=utf8mb4\

-DDEFAULT_COLLATION=utf8mb4_general_ci

3375362132e75cbc0d0c0ada849be278.png

make && make install

1

make&&makeinstall

f6d9b3c01bf650a0681044b5e4ba5e21.png

安装好后的/usr/local/mysql 目录结构

8d43d5e654222473116033ed724cc1b6.png

配置

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

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

[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 = "" #这个加密选项5.7之前没有这个功能,5.7之前版本不要开启

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

[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=""#这个加密选项5.7之前没有这个功能,5.7之前版本不要开启

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 mysql

1

chown-Rmysql:mysqlmysql

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

be8ef200cc2df820bcf3100093a95246.png

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

#初始化mysql(5.6)

./scripts/mysql_install_db --basedir=/opt/mysql5.6.47/ --datadir=/data/mysql.5.6.47/data --user=mysql --no-defaults

#初始化mysql(5.7)

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

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

如果你的机器装了2个mysql那么你需要注意了,启动的时候需要绝对路径

/opt/mysql5.6/bin/mysqld_safe --defaults-file=/opt/mysql5.6.47/my.cnf --user=mysql &

#sock登录

/usr/local/mysql5.6/bin/mysql -uroot -P 33068 -p -S /data/mysql.5.6.47/tmp/mysql.sock

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

#初始化mysql(5.6)

./scripts/mysql_install_db--basedir=/opt/mysql5.6.47/--datadir=/data/mysql.5.6.47/data--user=mysql--no-defaults

#初始化mysql(5.7)

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

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

如果你的机器装了2个mysql那么你需要注意了,启动的时候需要绝对路径

/opt/mysql5.6/bin/mysqld_safe--defaults-file=/opt/mysql5.6.47/my.cnf--user=mysql&

#sock登录

/usr/local/mysql5.6/bin/mysql-uroot-P33068-p-S/data/mysql.5.6.47/tmp/mysql.sock

54e15170b9e67c2ce09d3f41d0375f1f.png

拷贝可执行配置文件

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

1

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

6b1ad511984b04ca5c636af7731a1039.png

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

启动

service mysqld start

1

servicemysqldstart

faf9582cc9ae17d1b735d4c3a8a907a3.png

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

#常见启动错误

starting MySQL… ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).

解决办法:

1.可能是/home/data/mysql 文件夹没有写的权限

解决方法 :给予权限,执行 “chown -R mysql:mysql /home/data/mysql” “chmod -R 755 /home/data/mysql” 然后重新启动mysqld!

2.可能进程里已经存在mysql进程

解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!

3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

解决方法:请在[mysqld]下设置这一行:datadir = /home/data/mysql

5.skip-federated字段问题

解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6.错误日志目录不存在

解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7.selinux惹的祸,如果是centos或redhat系统,默认会开启selinux

解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1.可能是/home/data/mysql文件夹没有写的权限

解决方法:给予权限,执行“chown-Rmysql:mysql/home/data/mysql”“chmod-R755/home/data/mysql”然后重新启动mysqld!

2.可能进程里已经存在mysql进程

解决方法:用命令“ps-ef|grepmysqld”查看是否有mysqld进程,如果有使用“kill-9进程号”杀死,然后重新启动mysqld!

3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

解决方法:请在[mysqld]下设置这一行:datadir=/home/data/mysql

5.skip-federated字段问题

解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6.错误日志目录不存在

解决方法:使用“chown”“chmod”命令赋予mysql所有者及权限

7.selinux惹的祸,如果是centos或redhat系统,默认会开启selinux

解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

测试连接

./mysql -hlocalhost -uroot -p

#无需密码即可连接成功

1

2

./mysql-hlocalhost-uroot-p

#无需密码即可连接成功

371b4d62b46063aa0687fbc6dbf4967b.png

更新密码

use mysql;

update user set authentication_string=password('123456') where user='root' and host='localhost';

flush privileges;

#说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.

或者这样修改密码

set password for root@localhost = password('123456');

flush privileges;

1

2

3

4

5

6

7

8

9

usemysql;

updateusersetauthentication_string=password('123456')whereuser='root'andhost='localhost';

flushprivileges;

#说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.

或者这样修改密码

setpasswordforroot@localhost=password('123456');

flushprivileges;

13fa5f283cf84e31b5387dfbac39278b.png

退出mysql 重启服务,使用密码登录

de46332f37da42db9fad048c22f08e5b.png

修改环境变量

在/etc/profile 中新增一行

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

#保存退出

source /etc/profile

#设置开机启动

systemctl enable mysqld

1

2

3

4

5

6

7

8

9

10

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

#保存退出

source/etc/profile

#设置开机启动

systemctlenablemysqld

f328b4ffadf3b8d3eb5560669f25e22c.png

(完)

小错误:如果你启动了mysql 但是在服务器上却找不到他的端口 3306

skip-networking #是因为你开启了这个选项

开启该选项后就不能远程访问MySQL

另外:

为安全考虑希望指定的IP访问MySQL,可以在配置文件中增加bind-address=IP,前提是关闭skip-networking

bind-address=192.168.1.100

1

2

3

4

5

6

skip-networking#是因为你开启了这个选项

开启该选项后就不能远程访问MySQL

另外:

为安全考虑希望指定的IP访问MySQL,可以在配置文件中增加bind-address=IP,前提是关闭skip-networking

bind-address=192.168.1.100

最后编辑:2020-11-10作者:shooter

cb9daae677fbcf9a9b0e39a252b93c86?s=96&d=monsterid&r=g

这个作者貌似有点懒,什么都没有留下。



推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
author-avatar
莫名2602913353
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有