1.关闭iptables
# chkconfig iptables off
2.修改selinux
# setenforce 0 临时关闭 重启后无效
Or
直接修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
3.新增mysql用户组
# groupadd mysql
# useradd -r -g mysql mysql
4.新建数据库执行文件目录(后面会把编译好的mysql程序安装到这个目录)
# mkdir -p /usr/local/mysql
5.新建数据库数据文件目录
# mkdir -p /mysql/data
# mkdir -p /mysql/logs
# mkdir -p /mysql/temp
6.编辑PATH搜索路径
# vi /etc/profile
在profile文件末尾增加两行
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
使PATH搜索路径立即生效
# source /etc/profile
7.安装编译源码所需的工具和库(因为是basic的系统 所以我这里需要安装相应的gcc的库)
# yum -y install wget gcc-c++ ncurses-devel cmake make perl
如果已经有所需的库就直接安装cmake
# cp cmake-2.8.12.2.tar.gz /usr/local
# tar -zxvf cmake-2.8.12.2.tar.gz
# cd cmake-2.8.12.2
# ./configure
# make
# make install
将cmake永久加入系统环境变量
用vi在文件/etc/profile文件中增加变量,使其永久有效,
# vi /etc/profile
在文件末尾追加以下两行代码:
PATH=/usr/local/cmake-2.8.10.2/bin:$PATH
export PATH
执行以下代码使刚才的修改生效:
# source /etc/profile
用 export 命令查看PATH值
# echo $PATH
8.开始编译安装mysql(事先准备好mysql的源码包)
# cd /usr/local/src
# tar -zxvf mysql-5.6.28.tar.gz
# cd mysql-5.6.28.tar.gz
使用cmake源码安装mysql(如果你打算安装到不同的路径,注意修改下面语句中/usr/local/mysql这个路径!)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
cmake结束后开始编译源码,这一步时间较长,请耐心等待
# make
安装便宜好的程序
# make install
注意:如果需要重装mysql,在/usr/local/src/mysql-5.6.16在执行下make install就可以了,不需要再cmake和make
清除安装临时文件
#make clean
修改目录拥有者
# chown -R mysql:mysql /usr/local/mysql
# chown -R mysql:mysql /mysql
初始化前先编辑mysql的配置文件my.cnf
# vi /etc/my.cnf (也可以先mv /etc/my.cnf /etc/my.cnf.bak)
**具体配置在文档最后~
执行初始化配置脚本,创建系统自带的数据库和表(注意路径/mysql/data需要换成自定定义的数据库存放路径)
scripts/mysql_install_db --user=mysql (--datadir=/mysql/data)
会看到有两个OK
启动实例
# bin/mysqld_safe --user=mysql &
启动之后可以查看一下/mysql/logs/error.log 的内容 看看是否正常启动
运行mysql
# /usr/local/mysql/bin/mysql -S /tmp/mysql.sock 启动MySQL
my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
[mysqld]
sync_binlog=1
port=3306
socket=/tmp/mysql.sock
pid-file=/mysql/temp/my3306.pid
user=mysql
datadir=/mysql/data
tmpdir=/mysql/temp/
log-bin=/mysql/data/mysql-bin
log-error=/mysql/logs/error.log
slow_query_log_file=/mysql/logs/slow1.log
binlog_format=mixed
slow_query_log=/mysql/logs/slow.log
long_query_time=1
wait_timeout=31536000
interactive_timeout=31536000
max_connections=500
max_user_connections=490
max_connect_errors=2
character_set_server=utf8
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 5M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
expire-logs-days=10
#skip-slave-start
#skip-name-resolve
lower_case_table_names=1
log_bin_trust_function_creators=1
tmp_table_size=67108864
max_heap_table_size=67108864
# InnoDB
innodb_data_home_dir=/mysql/data
innodb_log_group_home_dir=/mysql/logs
innodb_data_file_path=ibdata1:128M:autoextend
innodb_buffer_pool_size=2100M
innodb_log_file_size=10M
innodb_log_buffer_size=8M
innodb_lock_wait_timeout=50
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256K
sort_buffer_size = 256K
read_buffer = 256K
write_buffer = 256K