官方文档:
Installing MySQL Using a Standard Source Distribution
MySQL Source-Configuration Options
准备工作
1.安装wget、gcc、gcc-c++、bison、ncurses-devel
$ yum install wget gcc gcc-c++ bison ncurses-devel -y
2.安装cmake-3.7.1
$ cd /usr/local/src
$ wget https://cmake.org/files/v3.7/cmake-3.7.1.tar.gz
$ tar zxf cmake-3.7.1.tar.gz
$ cd cmake-3.7.1
$ ./bootstrap && gmake && gmake install
3.下载mysql源码包并解压
$ cd /usr/local/src/
$ wget http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.52.tar.gz
$ tar zxvf mysql-5.5.52.tar.gz
$ cd mysql-5.5.52
安装过程
1.创建组mysql和用户mysql
$ groupadd mysql
$ useradd -r -g mysql -s /sbin/nologin mysql
注:
-r 创建系统用户;
-s 指定shell,/sbin/nologin只限制系统登录,可以使用ftp等服务,/bin/false限制登录及所有服务。
2.创建mysql安装和数据存放目录,属主和属组改为mysql.mysql
$ mkdir –p /data/mysql
$ chown –R mysql.mysql /data/mysql
3.配置cmake选项
$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
$ echo $?
注:
1)cmake选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
指定安装目录
-DMYSQL_DATADIR=/data/mysql
指定数据存放目录
-DSYSCONFDIR=/etc
指定配置存放目录
-DDEFAULT_CHARSET=utf8
指定默认字符集
-DDEFAULT_COLLATION=utf8_general_ci
指定mysql排序规则(字符校对)
-DMYSQL_USER=mysql
指定mysql用户
2)echo $? 用于配置结果检验,若输出为0,则配置成功。
4.编译、安装
$ make && make install
$ echo $?
5.初始化数据库
$ ./scripts/mysql_install_db \
--user=mysql \
--datadir=/data/mysql \
--basedir=/usr/local/mysql
错误1:
-bash: ./scripts/mysql_install_db: Permission denied
解决方法:
chmod 755 ./scripts/mysql_install_db
错误2:
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
解决方法:
添加选项--basedir=/usr/local/mysql
6.拷贝配置文件到/etc/
$ cp support-files/my-large.cnf /etc/my.cnf
注:
mysql配置文件my.cnf在/usr/local/mysql/support-files/目录下,分别为my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf,适用于不同规模的项目。例如,如果运行MySQL服务器的系统内存不多,而且MySQL只是偶尔使用,那么使用my-small.cnf配置文件最为理想,这个配置文件告诉mysqld daemon使用最少的系统资源。反之,如果MySQL服务器用于支持一个大规模的在线购物网站,系统资源充足,那么使用mysql-huge.cnf 最为合适。
把my-large.cnf文件复制到服务器的/etc/my.cnf,此时文件中所定义的参数将全局有效,即对该服务器上运行的所有MySQL Server都有效。
7.mysql server服务添加到启动文件,并更改权限
$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod 755 /etc/init.d/mysqld
8.修改服务启动脚本
$ vim /etc/init.d/mysqld
修改部分如下:
basedir=/usr/local/mysql
datadir=/data/mysql
9.把启动脚本加入系统服务项,并设定开机启动,启动mysql
$ chkconfig --add mysqld
$ chkconfig mysqld on
$ service mysqld start
错误之处,还望指出,多谢!