关注小众语言、AI技术,记录、分享技术点滴!

0%

mysql启动时出现mysqld_safe: line 707: ulimit: open files: cannot modify limit: Operation not permitted错误
解决方法:

1
ulimit -n 65535

普通用户ssh连接linux服务器是总是提示:

1
ulimit: open files: cannot modify limit: Operation not permitted

解决方法:

1
2
3
4
5
6
7
8
9
10
11
$ vi /etc/security/limits.conf
# End of file
#添加以下内容:
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

#优化内核时:
* soft nproc 65535
* hard nproc 65535

重启系统

错误描述

1
2
3
4
$ yum install libmcrypt libmcrypt-devel
Setting up Install Process
No package libmcrypt-devel available.
Error: Nothing to do

我们会看到centos yum从仓库中根本找不到这几个包。但我不想使用源码编译就想使用yum安装,怎么办?

解决方法:

1
2
3
$ yum install epel-release  #扩展包更新包
$ yum update #更新yum源
$ yum install libmcrypt libmcrypt-devel #就ok了

1、备份

1
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5

1
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6

1
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

1
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存

1
2
$ yum clean all
$ yum makecache

完成

ps:
1、同步频率为每天一次,每天凌晨2:00-4:00为镜像的同步时间
2、若使用阿里云服务器,将源的域名从mirrors.aliyun.com改为mirrors.aliyuncs.com,不占用公网流量。

官方建议使用centos7部署docker1.9.1。
目前,很多系统仍为centos6.8,本文用于测试将centos6.8升级至1.9.1.

查看系统版本

1
2
3
$ more /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m

查看内核版本

1
2
$ uname -r
2.6.32-573.22.1.el6.x86_64

升级内核至3.10

1
2
3
4
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ cd /etc/yum.repos.d/
$ rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
$ yum --enablerepo=elrepo-kernel install kernel-lt -y

升级完毕,修改grup并进行重启。

修改grub.conf文件default值为0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ vim /etc/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/vda1
# initrd /boot/initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.105-1.el6.elrepo.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-3.10.105-1.el6.elrepo.x86_64 ro root=UUID=55d851da-601d-440a-b119-4fcd9cde4d02 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-3.10.105-1.el6.elrepo.x86_64.img
title CentOS (2.6.32-642.6.2.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-642.6.2.el6.x86_64 ro root=UUID=55d851da-601d-440a-b119-4fcd9cde4d02 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img

重启系统

1
$ reboot

重启后查看版本

1
2
$ uname -r
3.10.105-1.el6.elrepo.x86_64

安装docker 1.9.1

1
2
3
$ curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-1.9.1 && chmod +x docker-1.9.1 && mv docker-1.9.1 /usr/local/bin/docker
$ cp /usr/local/bin/docker /usr/bin/docker
$ service docker start

重启后验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64

Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64

Docker是一个能够把开发应用程序自动部署到容器的开源引擎。它由Docker公司的团队编写,基于Apache 2.0开源协议授权。它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。

前提条件

内核

Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行。但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Windows等平台。目前Docker支持以下版本CentOS:

CentOS 7(64位)
CentOS 6.5(64位)及以后

在运行CentOS 6.5及以后版本时,需要内核版本>=2.6.32-431,因为这些内核包含了运行Docker的一些特定修改。

1
2
$ uname -r
2.6.32-573.22.1.el6.x86_64

Device Mapper

Docker默认使用AUFS作为存储驱动,但是AUFS并没有被包括在Linux的主线内核中。CentOS中可以使用Device Mapper作为存储驱动,这是在2.6.9内核版本引入的新功能。我们需要先确认是否启用该功能:

1
2
$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 Mar 11 17:06 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper

如果没有检测到Device Mapper,需要安装device-mapper软件包:

1
$ yum install -y device-mapper

然后重新加载dm_mod内核模块:

1
$ modprobe dm_mod

第一步 Enable EPEL

对于CentOS6.8, Docker可以在EPEL源里面找到,所以我们首先需要确保启用EPEL。

1
$ yum -y install epel-release-6-8.noarch

第二步 Install Docker-IO

最后需要安装docker-io的RPM包。

1
$ yum -y install docker-io

这样完成了Docker的安装。

1
2
$ docker -v
Docker version 1.7.1, build 786b29d/1.7.1

启动

第一步 启动服务

一旦安装好Docker之后,我们需要启动Docker Deamon:

1
$ service docker start

第二步 设置开机启动(可选)

如果希望Docker Deamon开机运行,还需要做如下操作:

1
$ chkconfig docker on

验证

验证Docker Deamon

启动服务后,直接用docker info命令确认docker是否正确安装并运行:

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
$ docker info
Containers: 1
Images: 4
Storage Driver: devicemapper
Pool Name: docker-202:1-1835598-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 541.8 MB
Data Space Total: 107.4 GB
Data Space Available: 28.89 GB
Metadata Space Used: 983 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.117-RHEL6 (2016-08-15)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 2.6.32-573.22.1.el6.x86_64
Operating System: <unknown>
CPUs: 1
Total Memory: 994.6 MiB
Name: iZ23l4s2070Z
ID: CGIV:KQ7V:LP5I:NF5V:ZMKG:4AK3:RMDZ:QLVL:BY6F:GQF3:V7E5:TDCA

验证Docker Client

现在就让我们验证下Docker是否能正常运行,首先我们来获取centos6.8的镜像:

1
$ docker pull daocloud.io/centos:6

这里使用的是DaoCloud源,因为官方源在国内不稳定。国内其它源地址:1、https://c.163.com/hub 2、http://hub.daocloud.io,但要求Docker版本>=1.3.2。然后我们检查是否能看到镜像:

1
2
3
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
daocloud.io/centos 6 10611b26a8b9 4 months ago 194.6 MB

激动的时刻到了,让我们运行一下:

1
$ docker run -i -t daocloud.io/centos /bin/bash

一切正常的话,你会看到一个终端提示符,然后你就可以像操作任何CentOS机器一样进行你的体验。

CentOS配置vsftp服务器,特殊情况下方便快速管理文件。
1、安装vsftpd

1
yum -y install vsftpd

2、配置vsftpd.conf文件(修改下面中文部分内容)

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
vi /etc/vsftpd/vsftpd.conf

# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

# 是否允许匿名登录(将其禁止)
#anonymous_enable=YES
#
# 允许使用本地帐户进行FTP用户登录验证
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# The target log file can be vsftpd_log_file or xferlog_file.
# This depends on setting xferlog_std_format parameter
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
#xferlog_file=/var/log/xferlog
#
# Switches between logging into vsftpd_log_file and xferlog_file files.
# NO writes to vsftpd_log_file, YES to xferlog_file
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.

# 设置连接超时时间(单位秒)
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.

# 数据传输超时时间(单位秒)
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.

# 是否允许上传/下载二进制文件
ascii_upload_enable=YES
ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().

# 限制所有的本地用户只能访问自己的目录
chroot_local_user=YES

# 当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.

# 是否允许使用ls -R等命令
ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list

# [新增]是否只允许userlist_file文件中的用户登录FTP服务器,userlist_enable为YES才生效
# YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入密码的提示。NO,只允许在文件中的用户登录FTP服务器
userlist_deny=NO
tcp_wrappers=YES

# [新增]所有用户的根目录(对匿名用户无效,不设置时,默认为用户的家目录/home/ftpuser)
local_root=/data

3、新增ftp用户并为其设置密码

1
2
useradd -d /home/ftpuser -s /sbin/nologin ftpuser
passwd ftpuser

4、编辑user_list文件,给予ftpuser用户访问ftp权限

1
vim /etc/vsftpd/user_list

在文件末尾加入ftpuser并保存

5、建立可访问目录并指定用户

1
2
3
mkdir -p /data
chown -R ftpuser /data/ #注意后面有个/
chmod -R 755 /data

6、启动vsftpd服务

1
service vsftpd start

7、开机启动vsftpd服务

1
chkconfig vsftpd on

至此完毕

3.2 HLS标签说明

3.2.1 EXT-X-TARGETDURATION

该标签指定了媒体文件持续时间的最大值,播放文件列表中的媒体文件在EXTINF标签中定义的持续时间必须小于或者等于该标签指定的持续时间。该标签在播放列表文件中必须出现一次,其格式为:

# EXT-X-TARGETDURATION:<s> s是一个以秒为单位的整数。

3.2.2 EXT-X-MEDIA-SEQUENCE

播放列表文件中每个媒体文件的URI都有一个唯一的序列号。URI的序列号等于它之前那个RUI的序列号加一。EXT-X-MEDIA-SEQUENCE指明了出现在播放列表文件中的第一个URI的序列号。其格式如下:

#EXT-X-MEDIA-SEQUENCE:<Number> 播放列表文件中的EXT-X-MEDIA-SEQUENCE标签不能多于一个。如果播放列表文件中没有EXT-X-MEDIA-SEQUENCE标签,那么将会把播放列表中第一个URI的序列号当成0。

注:媒体文件的序列号码不是必须出现在它的URI中的。见6.3.2和6.3.5。

3.2.3 EXT-X-KEY

媒体文件可能是被加密的,EXT-X-KEY提供了解密媒体文件的必要信息,它的格式如下:

#EXT-X-KEY:METHOD=<method> [,URI = "<uri>"] [,IV = <iv>]

Method属性指定了加密方法,定义了两种加密方法:NONE和AES-128。
加密方法NONE表示媒体文件不被加密,如果加密方法是NONE,那么URI和IV属性不允许存在。
加密方法AES-128表示媒体文件使用高级加密标准128位密钥和PKCS7 padding加密。如果加密方法是AES-128,那么对于URI属性,如果存在,则指定获取密钥的方法;对于IV属性,如果存在,则指定使用密钥的初始化向量。
IV属性出现在协议版本2中,新的EXT-X-KEY将会取代任何一个先前的EXT-X-KEY。
如果播放列表文件没有包含EXT-X-KEY标签,那么媒体文件将不会被加密。

密钥文件的格式见第五章,媒体文件加密信息见5.2、6.2.3、6.3.6。

3.2.4 EXT-X-PROGRAM-DATE-TIME

EXT-X-PROGRAM-DATE-TIME标签将下一个媒体文件的开头和绝对日期关联起来。日期/时间的表示基于ISO/IEC,并且要指明时区。例如:
#EXT-X-PROGRAM-DATE-TIME:<YYYY–MM–DDThh:mm:ssZ>

详见6.2.1和6.3.3

3.2.5 EXT-X-ALLOW-CATCH

EXT-X-ALLOW-CATCH标签指定客户端可以或者不准缓存下载的媒体文件用来重播。它可能会出现在播放列表文件的任何地方,但是不能出现两次或以上。该标签适用于播放列表中的所有分片。其格式如下:
#EXT-X-ALLOW-CACHE:<YES|NO>

详见6.3.3

3.2.6 EXT-X-ENDLIST

EXT-X-ENDLIST标签标示没有更多媒体文件将会加入到播放列表中,它可能会出现在播放列表文件的任何地方,但是不能出现两次或以上。其格式如下:
#EXT-X-ENDLIST

3.2.7 EXT-X-STREAM-INF

EXT-X-STREAM-INF标签表示在播放列表中的下一个URI标识另一个播放列表文件。格式如下:
#EXT-X-STREAM-INF:[attribute=value][,attribute=value]\* <URI>

在一个EXT-X-STREAM-INF标签中attribute不能出现两次或以上。其它属性定义:
BANDWIDTH = <n>
n为每秒比特数,它必须是每个媒体文件比特速率的上限,必须经过计算包含那些在播放列表中出现的或者将要出现的容器开销。
PROGRAM-ID=<i>
i是一个数字,在播放列表文件的范围内唯一的标识了一个特定的演示文稿。
一个播放列表文件可能包含多个具有相同PROGRAM-ID 的EXT-X-STREAM-INF标签来标识某个演示文稿的不同编码。这些变种的的播放列表可能包含额外的EXT-X-STREAM-INF标签。
CODECS="[format][,format]*"
每一种格式都指定了存在于媒体文件中的媒体类型。合法的格式标示符都是那些在ISO文件格式名称空间被RFC4281定义的格式。
RESOLUTION=x
N是流中视频水平编码分辨率的近似,以像素数表示,M是编码垂直分辨率的近似。

3.2.8 EXT-X-DISCONTINUITY

EXT-X-DISCONTINUITY标签表示该标签后边的媒体文件和之前的媒体文件之间的编码间断。特性可能改变的一组是:

1
2
3
4
file format  
number and type of tracks
encoding parameters
encoding sequence

详见第四章,6.2.1、6.3.3。

3.2.9 EXT-X-VERSION

EXT-X-VERSION标签指出了播放列表版本的适应性。播放列表文件、其关联的媒体和服务器必须遵守最新版本的所有规定。

4 多媒体文件

每一个媒体文件资源定位符都必须标识一个媒体文件,该文件是整体数据的一个分片。每个媒体文件必须按照MPEG-2的传输流和MPEG-2音频流的格式。[ISO13818]
传输流文件必须包含一个MPEG-2节目。在每个文件的开始应该有一个节目关联表和一个节目映射表。包含视频的文件应该有至少一个密钥帧和足够的信息来完全初始化一个视频解码器。
播放列表中的媒体文件必须是编码流中媒体文件的末尾与先前的序列号的延续,除非它是播放列表中出现的第一个媒体文件,或者它前边有EXT-X-DISCONTINUITY标签。
客户端应该准备好处理一个特定类型(音频或视频等)的多个轨道。一个没有优先级的客户端应该选择它能播放的具有最小数字编号的音轨。
客户端应该忽略那些传输流的内部不能识别的流。
媒体文件内样本流和相应的多媒体流的编码参数应保持一致。然而客户端应该解决编码的变化问题,例如缩放视频内容以适应分辨率改变。

URI属性中EXT-X-KEY标签标识一个密钥文件。密钥文件包含解密播放列表中媒体文件的密钥。AES-128加密算法使用16字节的密钥。密钥文件的格式为16字节的二进制数数组。

mysql分社区版和企业版,其中社区版为免费使用并且开源。
1、下载mysql5.7社区版(64位)

1
2
3
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar
tar -xvf mysql-5.7.17-linux-glibc2.5-x86_64.tar
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

2、解压拷贝

1
mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

3、创建mysql用户

1
2
groupadd mysql
useradd -r -g mysql mysql

4、创建mysql的数据目录,该目录在初始化数据库的时候会用到

1
2
mkdir /usr/local/mysql/data /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql

5、创建my.cnf文件

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
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf

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

[mysqld]
server_id=1
port = 3306
user = mysql
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
#####====================================[innodb]==============================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend

#####====================================[log]==============================
log_error = /usr/local/mysql/log/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

6、初始化数据库

1
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

7、修改目录权限

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

8、配置启动文件

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

9、启动mysql

1
/etc/init.d/mysqld start

10、获取初始密码

1
2
cat ~/.mysql_secret
rm -rf ~/.mysql_secret

11、重设初始密码

1
2
3
4
5
6
7
8
9
10
/usr/local/mysql/bin/mysql -uroot -p

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '********';

mysql> grant all privileges on *.* to root@'%' identified by '123456';

mysql> flush privileges;

ps:远程连接mysql,报can’t connect to mysql server on ‘localhost’ (10060)
请检查一下iptables,默认可能禁用了3306端口

1
2
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重启iptables

1
service iptables restart

PS:

1、创建用户

1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:
username:你将创建的用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

2、授权

1
GRANT privileges ON databasename.tablename TO 'username'@'host'

说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*

注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

1
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

3、设置与更改用户密码

1
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用

1
SET PASSWORD = PASSWORD("newpassword");

4、撤销用户权限

1
REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明:
privilege, databasename, tablename:同授权部分

注意:

1
2
3
假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%',则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看。

5、删除用户

1
DROP USER 'username'@'host';

php一共有两个模块分别为mongo和mongodb,其中php7只支持mongodb模块

1.安装依赖包

1
yum install autoconf

2.下载mongodb模块

1
2
3
wget -O mongodb-1.1.9.tgz https://pecl.php.net/get/mongodb
tar -zxvf mongodb-1.1.9.tgz
cd mongodb-1.1.9

3.编译与安装

1
2
3
4
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

安装完成