rhel6下,源码编译安装mysql 5.6.14

更多博文请关注:没有伞的孩子必须努力奔跑(www.xuchanggang.cn)


从mysql 5.5开始,mysql编译采取了cmake编译,来取代原来的configure,因此,我们下面的编译安装,也是使用cmake编译安装。
需要准备的源码包:

mysql源码包:mysql-5.6.14.tar.gz

cmake源码包:cmake-2.8.10.2.tar.gz [cmake我们也采取编译安装,并下载最新版本]

1.对于全新的系统环境,源码编译安装,需要很多包,但是,系统光盘里基本上提供了,所以,建议大家先配置yum源,这里不做演示[可参考博客里 “yum仓库配置”一文]。这里默认大家已经配置好yum源:

  1. [root@client100 ~]# yum -y install gcc-c++ ncurses-devel make perl bison ncurses

2.进入存放源码包的目录,解压cmake源码包

  1. # 解压源码包

  2. [root@client100 tmp]# tar -xf cmake-2.8.10.2.tar.gz

  3. # 进入解压目录

  4. [root@client100 tmp]# cd cmake-2.8.10.2

  5. # 配置安装参数

  6. [root@client100 cmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake

  7. # 编译源码

  8. [root@client100 cmake-2.8.10.2]# gmake

  9. # 安装

  10. [root@client100 cmake-2.8.10.2]# make install

  11. # 修改配置文件

  12. [root@client100 cmake-2.8.10.2]# vim /etc/profile

  13. # 在文件的最后,添加如下两行[即修改PATH的路径,指定cmake命令的路径]

  14. PATH=/usr/local/cmake/bin:$PATH

  15. export path

  16. # 使配置文件立即生效

  17. [root@client100 cmake-2.8.10.2]# source /etc/profile

  18. # 执行如下操作,如果能显示具体版本,cmake就安装成功

  19. [root@client100 cmake-2.8.10.2]# cmake --version

  20. cmake version 2.8.10.2

3.mysql编译前,准备工作:

  1. # 创建mysql用户组

  2. [root@client100 tmp]# groupadd mysql

  3. # 创建用户并加入用户组,并取消login权限

  4. [root@client100 tmp]# useradd -g mysql -s '/sbin/nologin' mysql

  5. # 建立mysql安装目录

  6. [root@client100 test]# mkdir -p /usr/local/mysql

  7. # 建立mysql数据存放目录

  8. [root@client100 test]# mkdir -p /home/mysql/data

  9. # 建立mysql安装目录的属主

  10. [root@client100 mysql-5.6.14]# chown mysql.mysql -R /usr/local/mysql

  11. # 修改mysql数据存放目录的所属者

  12. [root@client100 mysql-5.6.14]# chown mysql.mysql -R /home/mysql/data

4.开始编译安装mysql

  1. # 解压mysql 源码包

  2. [root@client100 tmp]# tar -xf mysql-5.6.14.tar.gz

  3. # 进入mysql源码包目录

  4. [root@client100 mysql-5.6.14]# cd mysql-5.6.14

  5. # 用cmake配置安装选项[ 每行结尾的 \ ,是因为一行写不下,换到下行继续,并去除后面的空格或回车]

  6. [root@client100 mysql-5.6.14]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

  7. -DMYSQL_DATADIR=/home/mysql/data \

  8. -DSYSCONFDIR=/etc \

  9. -DWITH_MYISAM_STORAGE_ENGINE=1 \

  10. -DWITH_INNOBASE_STORAGE_ENGINE=1 \

  11. -DWITH_MEMORY_STORAGE_ENGINE=1 \

  12. -DWITH_READLINE=1 \

  13. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock \

  14. -DMYSQL_TCP_PORT=3306 \

  15. -DENABLED_LOCAL_INFILE=1 \

  16. -DWITH_PARTITION_STORAGE_ENGINE=1 \

  17. -DEXTRA_CHARSETS=all \

  18. -DDEFAULT_CHARSET=utf8 \

  19. -DDEFAULT_COLLATION=utf8_general_ci

  20. # /* 以下为配置参数注解 */

  21. # /* -DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 指定mysql安装位置

  22. # /* -DMYSQL_DATADIR=/home/mysql/data # 数据文件存放位置

  23. # /* -DSYSCONFDIR=/etc # 配置文件my.cnf的位置

  24. # /* -DWITH_MYISAM_STORAGE_ENGINE=1 # 支持MyIASM引擎

  25. # /* -DWITH_INNOBASE_STORAGE_ENGINE=1 # 支持InnoDB引擎

  26. # /* -DWITH_MEMORY_STORAGE_ENGINE=1 # 支持Memory引擎

  27. # /* -DWITH_READLINE=1 # 快捷键功能

  28. # /* -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock # 连接数据库socket路径

  29. # /* -DMYSQL_TCP_PORT=3306 # 端口

  30. # /* -DENABLED_LOCAL_INFILE=1 # 允许从本地导入数据

  31. # /* -DWITH_PARTITION_STORAGE_ENGINE=1 # 安装支持数据库分区

  32. # /* -DEXTRA_CHARSETS=all # 安装所有的字符集

  33. # /* -DDEFAULT_CHARSET=utf8 # 默认字符

  34. # /* -DDEFAULT_COLLATION=utf8_general_ci

  35. # 开始编译

  36. [root@client100 mysql-5.6.14]#gmake

  37. # 安装mysql到刚才参数配置的目录

  38. [root@client100 mysql-5.6.14]# make install

  39. # /* 注意事项 */

  40. 重新编译时,需要清除旧的对象文件和缓存信息[如果可以,就把解压的目录删掉,重新解压目录或者执行如下操作]

  41. # /* make clean

  42. # /* rm -f CMakeCache.txt

  43. # /* rm -rf /etc/my.cnf

5.后续mysql相关操作:

  1. # 进入mysql安装目录下的脚本目录

  2. [root@client100 /]# cd /usr/local/mysql/scripts/

  3. # 安装mysql默认数据库,指明数据库安装目录,数据目录,用户

  4. [root@client100 scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql

  5. # 进入mysql配置文件目录

  6. [root@client100 mysql]# cd /usr/local/mysql/support-files/

  7. # 复制配置文件到/etc目录下,并改名为my.cnf[如果目录下有my.cnf文件,选择覆盖或者删除或者在上面进行修改]

  8. [root@client100 support-files]# cp my-default.cnf /etc/my.cnf

  9. # 修改/etc/my.cnf的属主

  10. [root@client100 support-files]# chown mysql:mysql /etc/my.cnf

  11. # 将安装目录属主改为mysql[上面更改,到这里又变成root属主了,所以可以选择更改为mysql]

  12. [root@client100 support-files]# chown mysql:mysql -R /usr/local/mysql

  13. # 修改/etc/my.cnf配置文件

  14. [root@client100 support-files]# vim /etc/my.cnf

  15. # 配置文件内容如下: [目前,这里只做简单配置,下篇文章会详述]

  16. [mysqld]

  17. innodb_buffer_pool_size = 128M

  18. basedir =/usr/local/mysql

  19. datadir =/home/mysql/data

  20. port =3306

  21. server_id =100

  22. socket =/usr/local/mysql/mysqld.sock

  23. join_buffer_size = 128M

  24. sort_buffer_size = 2M

  25. read_rnd_buffer_size = 2M

  26. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

  27. # 复制启动脚本文件到/etc/init.d/目录下

  28. [root@client100 support-files]# cp mysql.server /etc/init.d/mysqld

  29. # 修改启动脚本权限

  30. [root@client100 support-files]#chmod 755 /etc/init.d/mysqld

  31. # 修改启动脚本

  32. [root@client100 support-files]# vim /etc/init.d/mysqld

  33. # 仅修改如下两行,指定mysql安装目录,数据存放目录

  34. basedir=/usr/local/mysql

  35. datadir=/home/mysql/data

  36. # 编译配置文件,将mysql相关命令路径放到PATH环境变量里

  37. [root@client100 support-files]# vim /etc/profile

  38. PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/cmake/bin:$PATH

  39. export path

  40. # 重读配置文件,立即生效

  41. [root@client100 support-files]# source /etc/profile

  42. # 启动mysql数据库

  43. [root@client100 mysql]# /etc/init.d/mysqld start

  44. # 登陆测试[默认第一次登陆,没有密码]

  45. [root@client100 mysql]# mysql

  46. #/* 下面是mysql的一些简答操作 */

  47. #/* 安装mysql后,设置root用户密码

  48. [root@client100 mysql]# mysqladmin -uroot password 'kongzhong'

  49. # 设置完密码后,在直接用mysql登陆,是登陆不了

  50. [root@client100 mysql]# mysql

  51. ERROR 1045 (28000): Access denied foruser 'root'@'localhost' (using password: NO)

  52. # 需要使用此种方式登陆

  53. [root@client100 mysql]# mysql -uroot -pkongzhong

  54. # 下面是删除mysql数据库中,密码为空的用户

  55. mysql> use mysql

  56. mysql> select Host,User,Password fromuser;

  57. mysql> delete fromuser where password='';

  58. # 刷新授权表

  59. mysql> flush privileges;

  60. # 可选:运行安全设置脚本,修改MySQL用户root(不是系统的root)的密码,禁止root远程连接(防止破解密码),移除test数据库和匿名用户,强烈建议生产服务器使用:/usr/local/mysql/bin/mysql_secure_installation [在我们的安装环境中,命令行直接输入mysql_secure_installation 即可]


你可能感兴趣的:(mysql,源码编译安装)