0
点赞
收藏
分享

微信扫一扫

架构师之路-学渣到学霸历程-70

源码编译mysql

今天继续分享源码编译mysql的5.5版本;

  • 这里源码部署mysql-5.5版本
  • 准备源码文件:mysql-5.5.38.tar
  • 虚拟机最好跳到2G的内存
    • 虚拟机-->关机-->设置-->调整内存大小为2G

准备源码文件&解压

#准备好源码文件
[root@Linux3 ~]# ls
anaconda-ks.cfg mysql-5.5.38.tar.gz
#解压mysql的源码文件
[root@Linux3 ~]# tar -xf mysql-5.5.38.tar.gz
#进入看一下文件
[root@Linux3 ~]# cd mysql-5.5.38
[root@Linux3 mysql-5.5.38]# ls

安装依赖环境

  • 因为是源码安装;所以系统不会自动解决依赖环境
[root@Linux3 mysql-5.5.38]# yum -y install gcc gcc-c++ ncurses-devel libaio bison git cmake 

预编译&编译&安装

  • 这里耗时很久-->需要等很久很久
  • 编译用的是cmake
#预编译
[root@Linux3 mysql-5.5.38]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/usr/local/mysql/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
#编译安装
#这里可以去休息了
[root@Linux3 mysql-5.5.38]# make && make install

创建数据目录&创建mysql用户

#创建数据目录
[root@Linux3 mysql-5.5.38]# mkdir -p /data/mysql
#创建mysql的用户
[root@Linux3 mysql-5.5.38]# useradd mysql -r -s /sbin/nologin
##这里需要修改一下数据目录的归属;
[root@Linux3 mysql-5.5.38]# chown mysql:mysql /data/mysql/

准备好配置文件

  • small.cnf—>小于60M
  • large.cnf---->大于多少
  • huge.cnf--->巨大的
#查看源码包提供的配置文件
[root@Linux3 mysql-5.5.38]# ls support-files/*.cnf
support-files/my-huge.cnf support-files/my-large.cnf support-files/my-small.cnf
support-files/my-innodb-heavy-4G.cnf support-files/my-medium.cnf
#这里面都是配置文件-->随便复制一份用于mysql的配置文件即可
[root@Linux3 mysql-5.5.38]# cp support-files/my-huge.cnf /etc/my.cnf
cp:是否覆盖/etc/my.cnf? y
#然后修改指定数据目录以及安装目录
[root@Linux3 mysql-5.5.38]# vim /etc/my.cnf
...........
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir=/data/mysql #添加这一行,指定了mysql的数据目录
basedir=/usr/local/mysql #指定了mysql的安装目录
...

准备好mysql的脚本文件

  • 这些都可以直接从源码文件中复制过去
#复制二进制中的mysql脚本文件-->改名到到启动文件中
[root@Linux3 mysql-5.5.38]# cp support-files/mysql.server /etc/init.d/mysqld
#确定文件是具有执行权限
[root@Linux3 mysql-5.5.38]# ll /etc/init.d/mysqld
-rw-r--r-- 1 root root 10870 1015 22:47 /etc/init.d/mysqld
#添加权限
[root@Linux3 mysql-5.5.38]# chmod +x /etc/init.d/mysqld
[root@Linux3 mysql-5.5.38]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10870 1015 22:47 /etc/init.d/mysqld

初始化mysql

  • 指定数据目录
  • 指定mysql的源码目录
  • 指定启动的用户
[root@Linux3 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
#选项说明
#/usr/local/mysql/scripts/mysql_install_db 初始化命令
#--user=mysql #指定用户
#--datadir=/data/mysql #指定了数据目录
#--basedir=/usr/local/mysql #指定了mysql的安装地方
#如果初始化成功前面会有显示
Installing MySQL system tables...
OK
Filling help tables...
OK

#初始化成功就能够看到数据目录有相关的数据
[root@Linux3 ~]# ls /data/mysql/
mysql mysql-bin.000001 mysql-bin.000002 mysql-bin.index performance_schema test

启动mysql

  • 这里可以直接登录
#启动mysql
[root@Linux3 ~]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
#登入mysql
[root@Linux3 ~]# /usr/local/mysql/bin/mysql
............
mysql>
举报

相关推荐

0 条评论