热门标签 | 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

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



推荐阅读
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 【编程语言之Go介绍与环境安装】
    Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。  ... [详细]
  • 编译安装更轻量,不会像yum安装那么臃肿。(一)安装MYSQL:一、安装简介用户名:mysql安装目录:us ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 抽空写了一个ICON图标的转换程序
    抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 国庆节到了,安利一个Android的自动动态授权插件
    Android的老铁都知道申请权限时,除了要在AndroidManifest添加权限,还需要在activity中通过requestpermission对 ... [详细]
  • linux clickhouse安装在指定目录_Centos8服务器指定目录安装配置Nginx
    1.安装前准备(1)检查是否安装过nginx(如果没有安装过可以无视)find-namenginx搜索nginx文件及其文件夹rm-rf【nginx配置地址文件及其文件夹】手动删除 ... [详细]
  • 实验结果显示:对于大文件,计算MD5所需时间较长
    OpenSslAppFrame.cpp:Definestheentrypointfortheconsoleapplication.#includestdafx.h ... [详细]
  • Centos 6/7安装Python 3.5及SSL编译安装,实现HTTPS识别
    Python3中无法导入ssl模块的解决办法如果你发现在python3脚本运行过程中发现涉及到ssl模块都无法运行的情况下。那么需要进行如下步骤第一步:yuminst ... [详细]
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社区 版权所有