一、 规范
MySQL数据库,安装在Linux平台,安装源码包(Source Package)。
1、 操作系统
操作系统为Red Hat Enterprise Linux 6.5 64位,建议glibc-2.3及以上版本。
2、 数据库版本
数据库统一使用mysql-5.5.30源码包进行安装。
3、 字符集
服务端、客户端统一为utf8字符集。
二、 介质及环境准备
1、 介质准备
Mysql源码:mysql-5.5.30.tar.gz
依赖系统环境:
Make 3.75以上
GCC 4.2.1以上
cmake 使用最新版本
2、 安装cmake编译环境
tar xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap; make; make install
(详细看日志可能会缺少依赖包,用yum安装)
三、 安装MySQL
1、 创建mysql用户和用户组
用root用户进入Linux操作系统。创建mysql组,建立mysql用户并加入到mysql组中,设置mysql用户密码。
#groupadd -g 550 mysql
#useradd -u 550 -g mysql mysql
#passwd mysql
2、 解压安装文件
#cd /usr/local
#tar xzvf mysql-5.5.30.tar.gz
cd mysql-5.5.30
3、 配置编译安装
软件安装在/usr/local/mysql,数据文件存放于/data/mysql/data,默认字符集为utf8,且支持所有字符集,且支持innodb存储引擎
编译配置参数详细参照:
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
#cd mysql-5.5.30
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 .
#make
#make install
(需要重新配置需要重新解压或者删除CMakeCache.txt)
4、 创建数据库配置文件
使用MySQL自带的large配置文件模板创建数据库配置文件。
#mkdir /etc/my.cnf
#cp support-files/my-large.cnf /etc/my.cnf
#cp support-files/mysql.server /usr/local/mysql/bin
#chmod a+x /usr/local/mysql/bin/mysql.server
5、 创建数据目录
#mkdir -p /data/mysql/data
#mkdir -p /data/mysql/logs
#mkdir -p /data/mysql/tmp
6. 修改目录权限
# chown -R mysql:mysql /usr/local/mysql
# chown -R mysql:mysql /data/mysql
6、 初始化数据库
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql
出现下面两行即为初始化成功
installing mysql system tables... OK
filling help table... OK
7、 设置环境变量
编辑/etc/profile的PATH变量,在文件尾添加
#PATH=/usr/local/mysql/bin:$PATH
#export PATH=/usr/local/mysql/bin:$PATH
8、 运行mysql
使用root或mysql用户登录Linux启动mysql服务
#/usr/local/mysql/bin/mysql.server start
关闭mysql服务:
#/usr/local/mysql/bin/mysql.server stop
9、 用户配置及密码修改
使用root登录mysql,修改root密码。命令语句中标记为红色即为要修改的root密码。
# mysql –uroot
mysql>delete from mysql.user where user=‘‘ or host!=‘localhost‘;
mysql>update mysql.user set password=password(‘rootpassword‘) Where user=‘root‘;
mysql>flush privileges;
增加管理用户
mysql>grant all on *.* to [email protected]’xxx.xxx.xxx.xxx’ identified by ‘adminpassword’;
四、 配置及优化
在配置文件/usr/local/mysql/my.cnf的[mysqld]下加入
//去掉反向域名解析功能
skip-name-resolve
//为逻辑CPU的数量*2
thread_concurrency=32
//允许最大连接数
max_connections = 1024
//索引缓冲区
key_buffer_size = 256M
//打开慢查询配置
slow_query_log=1
long_query_time=5
//每个innodb表建立相应的数据和索引空间
innodb_file_per_table = 1
//innodb 读写线程优化参数,最大64根据io性能动态调整
innodb_write_io_threads=12
innodb_read_io_threads=12
//innodb 数据和索引缓冲块
innodb_buffer_pool_size = 1024M