安装要求:
目录安装在/usr/local/mysql
数据目录在/data/mysql/data
源码编译安装
环境准备:
# yum -y install make cmake gcc-c++ bison-devel ncurses-devel readline-devel # yum install openssl openssl-devel zlib-devel # mv /etc/my.cnf{,_bak}
下载,解压:
如果系统有安装mysql,最好先处理
配置编译安装:
# pwd /usr/local/src/mysql-5.6.15 # ccmake . 或 # cmake . -LH//查看编译可选项 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.15 \ -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 \ -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_SSL=yes -DWIHT_ZLIB=yes
以上是编译成功的提示,但有几个指定的功能未被使用,先安装吧,要花费一些时间:
# make && make install
如果出错,要清除旧的编译配置,再编译:
# rm -f CMakeCache.txt
初始化mysql:
# useradd -r -M -s /sbin/nologin mysql //创建mysq系统用户 # cd /usr/local # ln -sv mysql-5.6.15 mysql # mv mysql/my.cnf{,_bak} # cd mysql # chown -R mysql:mysql . # mkdir -p /data/mysql/data # chown -R mysql:mysql /data/mysql/data #./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql //将在/usr/local/mysql/目录下生成my.cnf配置文件 # ln -sv /usr/local/mysql/bin/mysql /usr/bin/mysql
也可以使用/usr/local/mysql/bin/mysql_secure_installation脚本做一些安全配置:root密码,远程登陆,匿名用户删除,test库删除
# /usr/local/mysql/bin/mysqladmin -u root password 'xxx' //为root用户设置密码,默认没有密码 > DROP USER ‘’@localhost;//删除匿名用户
控制脚本及开机自启动处理、启动服务:
# pwd /usr/local/mysql # cp support-files/mysql.server /etc/init.d/mysql # chmod +x /etc/init.d/mysql # chkconfig --add mysql # service mysql start启动成功
注:1. mysql服务使用的配置文件查找顺序:/etc/my.cnf----->/etc/mysql/my.cnf------>安装目录下的my.cnf------->mysql用户家目录下my.cnf
2. 服务使用service控制启动,实质上是执行bin/mysqld_safe命令
其他文件处理(非必需):
//配置环境变量 # echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile # source /etc/profile //库文件添加 # echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf # ldconfig //头文件添加 # ln -sv /usr/local/mysql/include /usr/include/mysql //man帮助文件添加 # echo "MANDATORY_MANPATH /usr/local/mysql/man" >> /etc/man_db.conf
查看已编译选项:
编译安装后会在安装目录下生成的bin/mysqlbug,查看该文件配置字段即可
# cat /usr/local/mysql/bin/mysqlbug |grep CONFIGURE_LINE
或# mysql_config 命令直接查看,主要是库文件查看
常用编译配置选项说明:
#cmke . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.15//软件安装位置
-DMYSQL_DATADIR=/data/mysql/data//数据文件位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock//Unix socket文件位置
-DSYSCONFDIR=/etc//配置文件my.cnf位置
-DMYSQL_TCP_PORT=3306//服务端口,默认的也是3306
-DWITH_MYISAM_STORAGE_ENGINE=1//启用myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1//启用innodb存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1//启用memory存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1//启用archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1//启用blackhole(黑洞)存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1//启用支持数据库分区
-DENABLED_LOCAL_INFILE=1//允许从本地导入数据
-DWITH_READLINE=1//批量导入数据
-DEXTRA_CHARSETS=all//安装所有字符集
-DDEFAULT_CHARSET=utf8//默认字符
-DDEFAULT_COLLATION=utf8_general_ci//校验字符
-DWITH_SSL=yes
-DWIHT_ZLIB=yes
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1//不启用
-DWITH_LIBWRAP=0//不启用基于wrap的访问控制
-DENABLE_PROFILING=1//启用性能分析功能
-DWITH_DEBUG=0//不启用DEBUG功能
cmake与configure编译配置的对比
configure | cmake | |
原理 | 执行configure脚本,生成Makefile文件 |
根据CMakeLists.txt生成CMakeCache.txt文件 |
执行方式 | # ./configure |
# cmake . |
配置选项查看 |
# ./configure --help |
#ccmake . 或 # cmake . -LH (先检查后输出) |
常用选项对比 |
--prefix=/usr/local/xxxx |
-DCMAKE_INSTALL_PREFIX=/usr/local/xxxx |
--with选项 |
-DWIHT_xxxxx=1和-DWIHTOUT_xxxx=1 |
|
--enable选项 |
-DENABLE_xxxx=1 |
|
二次配置处理 |
# make clean |
# rm -f CMakeCace.txt |
其他 | 使用#ccmake . GUI界面配置选项和检查 |
|
通用二进制包安装
环境准备:
# mkdir -p /data/mysql/data # useradd -r -M -s /sbin/nologin -d /data/mysql mysql # chown -R mysql:mysql /data/mysql/data # mv /etc/my.cnf{,_bak}
二进制tar包处理
# tar xf /usr/local/src/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ # cd /usr/local/ # ln -sv mysql-5.6.21-linux-glibc2.5-x86_64 mysql # cd mysql # chown -R mysql:mysql .
数据库初始化:
# pwd /usr/local/mysql # mv my.cnf{,_bak} # ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql
其他操作和编译安装一样,通用二进制包就是源码编译好的包,只要修改成适合于系统环境的就可以了
修改配置文件,加上基础配置:
# vim /usr/local/mysql/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/data/mysql/data port=3306 server_id=1 socket=/tmp/mysql.sock
复制service控制文件,启动mysql时报错:
造成以上原因可能有:
1.文件权限不足
2.机器上之前安装过mysql,找出mysql-bin.index文件,删除即可
3.配置文件问题,my.cnf没有指定datadir或是启用了skip-deferated字段,配置不正确也会出现这种问题
RPM包安装
先检查系统是否已安装,有则卸载
#yum list installed |grep mysql #rpm -qa | grep mysql #rpm -e --nodeps mysql
系统提供的rpm包安装(自动解决依赖关系)
# yum install mysql mysql-server mysql-command mysql-devel
官方提供的rpm包
# rpm -ivh mysql.5.6.12.rpm