Mysql部署与运维
1安装
1.1准备
-
安装linux服务器
(略)
-
下载MySQL 5.5.28源码包
下载地址:http://www.mysql.com/downloads/mysql/#downloads
在MySQL下载页面的下拉框选择“Source Code”,然后选择最下面的tar.gz格式,开始下载。
注意:若linux服务器可连外网,可通过wget方式进行下载:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz这个地址。
-
添加MySQL用户和组
sudo groupadd mysql
sudo useradd -r -g mysql mysql
-
安装一些需要的软件包
一般情况下,需要安装下述软件包,gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool*
sudo apt-get install cmake automake autoconf libtool gcc g++ bison
一般安装上述软件包就可以了,
各服务器环境有所不同,
需在编译mysql
过滤中根据提示动态安装其他相关信赖软件包.
有时候在编译过程总会出现这样的错误:
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:83 (MESSAGE): Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
,则需要多安装libncurses5-dev
包,
并删除目录下的 CMakeCache.txt
文件,重新进行cmake
编译。
sudo apt-get install libncurses5-dev
1.2编译安装
建议采用源码编译安装:
-
可以选择安装需要使用的功能
-
更好的兼容系统
-
指定安装目录
-
一次编译安装后可以用于其他相同配置的服务器
-
编译安装三步, cmake / make / make install
解压安装包,并进入安装包目录.
#创建目录
sudo mkdir/usr/loca/mysql3
#开始编译(注意下面的命令是一句,实际情况是没有换行的,这里为了方便添加注释)
sudo cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql3 #安装路径
-DMYSQL_DATADIR=/usr/local/mysql3/data #数据文件存放位置
-DSYSCONFDIR=/usr/local/mysql3 #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1 #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 #支持InnoDB引擎
-DWITH_READLINE=1 #快捷键功能(我没用过)
-DMYSQL_UNIX_ADDR=/tmp/mysqld3.sock #连接数据库socket路径,同一台服务器多个mysql时,需避免冲突,可网上搜索其sock文件作用
-DMYSQL_TCP_PORT=3312 #端口同一台服务器多个mysql时,需避免冲突
-DENABLED_LOCAL_INFILE=1 #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 #安装支持数据库分区
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk #安装需要的字符集
-DDEFAULT_CHARSET=utf8 #默认字符
-DDEFAULT_COLLATION=utf8_general_ci #默认字符集
编译过后,你会发现目录下多了下述文件,若各服务器配置一样,则可以直接把编译过后的目录复制到其他服务器直接进行下一步安装,无需重新编译.
#make安装(有时候直接sudo make && make install 一次性执行不行,有报错.后来分开执行下面命令就可以了,未找到原因)
sudo make
sudo make install
1.3配置
配置my.cnf ,my.cnf的加载顺序,Linux优先级从高到低/etc/my.cnf->/etc/mysql /my.cnf->SYSCONFDIR/my.cnf->$MYSQL_HOME/my.cnf,高优先级的my.cnf设置会覆盖低优先级的my.cnf,所以一般把config文件copy到安装目录下.