嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-12-27 2291 次浏览 标签 : Mysql

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

1、首先安装编译mysql-5.6.22,使用cmake来安装

cmake \
-DCMAKE_INSTALL_PREFIX=/home/ucai/local/mysql-bin \				# 生成的二进制文件存放的目录
-DMYSQL_DATADIR=/home/ucai/local/mysql-servers/3306/data \			# 该实例的数据库文件存放的路径
-DSYSCONFDIR=/home/ucai/local/mysql-servers/3306 \				# 该实例的my.cnf的存放路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \						# 支持的MYISAM数据库引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \						# 支持的INNOBASE数据库引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \						# 支持的MEMORY数据库引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \						# 支持的PARTITION数据库引擎
-DWITH_READLINE=1 \                                                             # 支持批量导入mysql数据
-DMYSQL_UNIX_ADDR=/home/ucai/local/mysql-servers/3306/mysql.sock \		# 连接mysql的socket文件
-DMYSQL_TCP_PORT=3306 \								# 服务占用的端口号
-DENABLED_LOCAL_INFILE=1 \                                                      # 可以使用load data infile命令从本地导入文件
-DEXTRA_CHARSETS=all \								# 支持的附加的字符集
-DDEFAULT_CHARSET=utf8 \							# 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci						# 默认的字符集和排序

使用cmake安装的重要特性之一是其独立于源码编译,指定编译完之后的生成的文件的目录,而源码目录不会受到污染,如果使用configure的方式来编译,如果想根据配置的参数不同而需要配置不同的版本,就需要删除原来的整个源码目录而重新解压安装。而使用cmake则不会有这个问题。

2、utf8mb4字符集的介绍:http://www.linuxidc.com/Linux/2013-05/84360.htm

3、mysql密码忘记了怎么办?我之前的做法是修改my.cnf,在[mysqld]模块中添加一行skip-grant-tables,今天看老师的做法类似,不过不是写在my.cnf而是在启动mysqld_safe的时候带上—-skip-grant-tables脚本如下:

#!/bin/bash

/home/ucai/local/mysql-bin/bin/mysqld_safe	\
—-defaults-file=/home/ucai/local/mysql-servers/3306/my.cnf	\
-—baseidr=/home/ucai/local/mysql-bin/	\
—-datadir=/home/ucai/local/mysql-servers/3306/data	\
—-log-error=/home/ucai/local/mysql-servers/3306/mysql.err	\
—-pid-error=/home/ucai/local/mysql-servers/3306/mysql.pid	\
—-socket=/home/ucai/local/mysql-servers/3306/mysql.sock		\
—-skip-grant-tables	\
—-prot=3306 &

4、创建多个新的mysql实例

①.新建一个目录/home/ucai/local/mysql-servers/3309

②.安装的脚本/home/ucai/local/mysql-servers/3309/install_db.sh

#!/bin/bash

/home/ucai/local/mysql-bin/scrpits/mysql_install_db	\
--basedir=/home/ucai/local/mysql-bin	\
--datadir=/home/ucai/mysql-servers/3309/data 	\
--user=ucai

③.把之前/home/ucai/local/mysql-servers/3306/my.cnf目录下的文件复制过来一份。修改/home/ucai/local/mysql-servers/3309/my.cnf
这个文件是从3306的实例那边复制过来的,所以需要修改下里面的端口配置从3306改为3309即可

④.运行install_db.sh安装实例

⑤.增加关闭脚本/home/ucai/local/mysql-servers/3309/stop.sh

#!/bin/bash

/home/ucai/local/mysql-bin/mysqladmin --default-file=/home/ucai/local/mysql-servers/3309/my.cnf -uroot -p shutdown

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表