一、服务器基本环境:
系统版本:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.8 (Final)
系统位数:
[root@localhost ~]# uname -i
x86_64
防火墙:
[root@localhost ~]# service iptables stop
[root@localhost ~]# service ip6tables stop
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig ip6tables off
SElinux:
[root@localhost ~]# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0
/** 此处需要重启生效 */
[root@localhost ~]# sestatus
SELinux status: disabled
IPADDRESS:
[root@localhost ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:5D:6D:B2
inet addr:192.168.128.200 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::a00:27ff:fe5d:6db2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:58608 errors:0 dropped:0 overruns:0 frame:0
TX packets:844 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4553888 (4.3 MiB) TX bytes:103068 (100.6 KiB)
二、MySQL规划:
MySQL源码包版本:mysql-5.6.14.tar.gz
MySQL的安装位置:/usr/local/mysql5.6
MySQL的配置文件:/usr/local/mysql5.6/etc/my.cnf
MySQL的数据目录:/mysql5.6
1.安装基础库:
# yum -y install make apr* autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel keyutils patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils libjpeg libjpeg-devel libidn libidn-devel libpng libpng-devel glibc glibc-devel libjpeg* libpng* glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel e2fsprogs e2fsprogs-devel krb5 krb5-develbisonexpect ntp elinks wget vim*
如果Yum源在本地,则需要安装如下基础库:
# yum -yt groupinstall "Development Tools" "Development Libraries"
2.安装Cmake:
# cd /usr/local/src/
# wget -c http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz
# tar zxvf cmake-2.8.12.tar.gz
# cd cmake-2.8.12
# ./configure
# make ; make install
3.安装MySQL数据库:
# cd /usr/local/src/
# wget -c ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
# tar zxvf mysql-5.6.14.tar.gz
# cd mysql-5.6.14
# cmake . -LAH --查看详细编译选项
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6/ -DMYSQL_DATADIR=/mysql5.6/ -DSYSCONFDIR=/usr/local/mysql5.6/ -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql5.6/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_COMMENT="mysql5.6" -Wno-dev
参数详解:
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 \ #安装路径
# -DMYSQL_DATADIR=/mysql5.6 \ #数据文件存放位置
# -DSYSCONFDIR=/usr/local/mysql5.6 \ #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/usr/local/mysql5.6/tmp/mysql.sock \ #连接数据库socket路径
# -DMYSQL_USER=mysql \ #用户
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
# -DEXTRA_CHARSETS=all \ #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 \ #默认字符
# -DDEFAULT_COLLATION=utf8_general_ci \ #字符校队规则
# -DWITH_COMMENT="mysql5.6" \ #指定编译备注信息
错误:
Warning: Bison executable not found in PATH
解决方法:
# yum -y install bison
This warning is for project developers. Use-Wno-devto suppress it.
-- Configuring done
CMake Warning (dev) in sql/CMakeLists.txt:
Policy CMP0022 is not set: INTERFACE_LINK_LIBRARIES defines the link
interface. Run "cmake --help-policy CMP0022" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
Target "mysqld" has an INTERFACE_LINK_LIBRARIES property which differs from
its LINK_INTERFACE_LIBRARIES properties.
INTERFACE_LINK_LIBRARIES:
-lpthread;sql;mysys
LINK_INTERFACE_LIBRARIES:
rt
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
MYSQL_USER
WITH_MEMORY_STORAGE_ENGINE
删除cache文件,不删除还会报错:
# rm -f CMakeCache.txt
# cmake .
# make ; make install
4.配置MySQL数据库:
# groupadd -g 27 mysql
# useradd -u 27 -g mysql -M -s /sbin/nologin mysql
# cd /usr/local/mysql5.6/
# cp support-files/my-default.cnf /usr/local/mysql5.6/my.cnf
# mkdir -p /mysql5.6
# chown -R mysql.mysql /usr/local/mysql5.6
# chown -R mysql.mysql /mysql5.6
# /usr/local/mysql5.6/scripts/mysql_install_db --basedir=/usr/local/mysql5.6 --datadir=/mysql5.6 --user=mysql --socket=/usr/local/mysql5.6/tmp/mysql.sock --defaults-file=/usr/local/mysql5.6/my.cnf
# echo "/usr/local/mysql5.6/lib" >> /etc/ld.so.conf
# ldconfig
修改my.cnf文件:
添加basedir/datadir/log-error/pid-file/tmpdir/slow_query_log_file/charset选项。(按需求来选择)
# vim /usr/local/mysql5.6/my.cnf
[client]
#password = [your_password]
port = 3306
socket = /usr/local/mysql5.6/tmp/mysql.sock
default-character-set = utf8
[mysqld]
# generic configuration options
port = 3306
socket = /usr/local/mysql5.6/tmp/mysql.sock
user = mysql
basedir = /usr/local/mysql5.6
datadir = /mysql5.6
log-error = /mysql5.6/mysql5.6.error.log
pid-file = /mysql5.6/mysql5.6.pid
tmpdir = /usr/local/mysql5.6/tmp/
character-set-server = utf8
slow_query_log = 1
slow_query_log_file = /mysql5.6/mysql5.6-slow.log
slave_load_tmpdir = /usr/local/mysql5.6/tmp/
general_log = 1
general_log_file = /mysql5.6/mysql5.6.log
explicit_defaults_for_timestamp
# /usr/local/mysql5.6/bin/mysqld_safe --defaults-file=/usr/local/mysql5.6/my.cnf --user=mysql &
# netstat --anptl | grep 3306
# cp support-files/mysql.server /etc/init.d/mysqld5.6
# chmod +x /etc/init.d/mysqld5.6
# chkconfig --add mysqld5.6
# chkconfig --level 35 mysqld5.6 on
# ln -s /usr/local/mysql5.6/bin/* /usr/local/bin/
修改/etc/init.d/mysqld5.6(添加defaults-file文件)
283 $bindir/mysqld_safe --defaults-file="$basedir/my.cnf" --datadir="$datadir" --pid-file="$mysqld _pid_file_path" $other_args >/dev/null 2>&1 &
重启MySQL服务:
# service mysqld5.6 restart
修改MySQL的root用户的密码以及打开远程连接:
# mysql -uroot -p(首次登陆,root密码为空)
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";//为root添加远程连接的能力
mysql> update user set Password = password('123456') where User='root';//设置root用户密码
mysql> delete from mysql.user where User=''; //删除空用户
mysql> flush privileges;
mysql> exit
注:以上版本在MySQL 5.5下均可以使用,请大家自行测试。
MySQL 5.5的下载地址为:http://jaist.dl.sourceforge.net/project/mysql.mirror/MySQL%205.5.29/mysql-5.5.29.tar.gz