Linux 源码安装MySQL 你GET了吗?

2019-07-13 07:37发布

前情介绍:
  1. 操作系统:Linux localhost.localdomain 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux(uname -a可以查看)
  2. 数据库:mysql Ver 14.14 Distrib 5.6.37, for Linux (x86_64) using EditLine wrapper(mysql -V 可以查看,注意大小写哦)
一.安装好centOS后,就的去请我们的主角MySQL咯。
获得MySQL的途径很多,但是很多都不是很顺畅。官网下载也不是很easy,SO,给大家推荐一个地址:http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/,然后找到一个你喜欢的版本就ok拉,当然后缀要是 .tar.gz的比较好咯~
我就随便下载一个来安装了~~LET’S GOOOOOOOOO!!!
直接上图:
1. 先给MySQL建一个家
这里写图片描述 2.然后就要请MySQL入驻咯
这里写图片描述 3.DONE(完成)
这里写图片描述 4.解压(tar -zxvf,然后重命名一下 mv mysql-5.6.37 mysql)
这里写图片描述 5.然后 需要建一个存放东西的仓库了(这里主要存放database,后面会用到的哦)
这里写图片描述 注意:mkdir -p 的意思哦~ 二.好了,这里,如果你对Linux了解的话,就应该知道需要建立用户和用户组了~
这里写图片描述
这里,报错,没关系的,因为一开始敲命令的时候我忘记截图了,又重新敲了一次~ 三.开始,开始安装
1. 需要先cmake一下。简单的说就是一个makeFile的一个工具。(可以百度一波)
这里写图片描述
Sorry,man!别看提示你有个Similar command,可以差距很大的哦~
但是,真正的问题是没有cmake命令呢~
这就是一开始说的问题了~需要事先准备的~好啦,这里也可以搞定他~ 2.安装cmake(这里就直接yum啦~偷懒一下~)
这里写图片描述 3.安装完毕,就可以继续了。先讲一下相关参数,配置
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 你要安装MySQL的目录了
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock UNIX socket文件 这个鬼东西可能导致MySQL起不来的哦
-DDEFAULT_CHARSET=utf8 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci 默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1 数据可以引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 数据可以引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 数据可以引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 数据可以引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 数据可以引擎
-DWITH_READLINE=1 readline库
-DENABLED_LOCAL_INFILE=1 启用加载本地数据
-DMYSQL_DATADIR=/home/mysql/data 数据存储目录 (前面手动建的)
-DMYSQL_USER=mysql mysqld运行用户 (前面建的用户和用户组)
-DMYSQL_TCP_PORT=3306 TCP/IP端口
-DENABLE_DOWNLOADS=1 然后,就run起来把
这里写图片描述 Oh,no!又报错了~这里,咋了呢?仔细看一下,原来是我所在的目录并不是解压后的mysql,而是事先建的mysql文件夹,所以报错没有CMakeList.txt。好啦,一点小插曲,我也没想到,cd进去mysql吧,继续cmake
woooooo,真的是这样。跑起来了呢~~~
这里写图片描述 但是又报错了,找不到Curses,这是啥???其实这是MySQL在centOS下安装需要的一个依赖~具体怎么样,还没去深入研究呢~
既然找不到,那就自己请来一个把~安装一波(又要偷懒了,哈哈哈),但是请注意~紧接着也是有解决的方法的哦~看见看吗~remove CMakeCache.txt……balabala 一大堆呢~
ok,那就按照他的说法去做把~ 这里写图片描述 最后肯定ok咯~~~这个过程需要你输入y,y是什么? okay,好了那就继续吧~~~
这里写图片描述 什么鬼东西,又报错了~~~ 翻译一下,就是:(好啦,其实我不会~~) 然后,请求了一下度娘,她说是:GCC没有,没有没有,好吧,没有!怎么办,去请啊~~~
如果你问我什么是GCC,那我会告诉你:GNU Compiler Collection,啦啦啦啦~ 这里写图片描述
这里也需要y,一下,然后很快就好了~
ok,继续run
这里写图片描述
我去,Warning,怎么搞定他?对了yum
这里写图片描述
然后,cmake,perfect,done! 4.接下来就是make了,直接在命令行输入make就可以了,就不截图了 无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。 而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。 因此,有效的利用make和 makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。摘自: http://man.linuxde.net/make 这里的时间可能稍微长一点,所以你可以先去喝杯茶什么的,休息一下~ over,完了~前面的目录弄错了~所以,要调整下了,将/usr/local/mysql/mysql/下的文件全部移动到上一目录,即/usr/local/mysql/下,然后再rm -rf CMakeCache.txt,按照前面的步骤再来一次了~有点尴尬~
这里会有相关的warning,不过没有关系~继续就好了~
okay,继续等待吧~时间还是有点长的~继续喝茶~~~ 顺利的话,跑完就好啦~ 继续make install
这里的时间就相对上面少的多了~ 如果没有报错的话 ,那你就是成功了哦~ 四.接下来就是一些权限和配置的问题了~
  • cd /usr/local/mysql
  • chown -R root:mysql . #注意这里的 .
  • chown -R mysql:mysql data
    上述命令将数据目录 data 的所属用户和所属用户组均设置为 mysql ,而将 mysql 目录下的其他文件的所属用户设置为 root ,所属组设置为 mysql 。(前面添加的哦,还记得吗?)
配置文件
- cp support-files/my-default.cnf /etc/my.cnf 创建系统数据库的表
  • scripts/mysql_install_db –user=mysql 这里有可能提示权限问题,先查看下相关权限,ll scripts/mysql_install_db ,若需要改变,只需要chmod 777一下就可以了
设置环境变量
  • vi /root/.bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs #PATH=$PATH:$HOME/bin **PATH=$PATH:$HOME/bin:/usr/local/mysql/bin** export PATH **unset USERNAME** XXX里面就是我们需要写的内容了 然后 引入刚刚的环境变量就好了
  • source /root/.bash_profile 五.启动 mysql 服务器 若想使用 service 命令启动 mysql 需要将 mysql 启动脚本 support-files/mysql.server 添加到 /etc/init.d 目录下
  • cp support-files/mysql.server /etc/init.d/mysql 然后就可以启动了。