CentOS6.6安装MYSQL-Hotel.Gouwa-51CTO博客
系统环境:CentOS 6.6 minimal 64位MySQL免编译包:mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz
MySQL源码包:mysql-5.5.20.tar.gz
小弟今天一定要8一8这个系统环境,在小弟刚接触linux的时候,被我大天朝度娘娘娘坑的膝盖烂如泥,为啥?因为大家的系统环境都不一样啊,所以小弟以后但凡写文档必写第一行,免得历史长河中的悲剧一次一次又一次,重复重复再重复!1024!
一.免编译安装
1.首先找个目录比如opt这种目录下载mysql安装包:
# cd /opt 2.进去后,使用wget或者winscp、rz各种办法把tar包搞进目录下。
# wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz 下载完之后,就会看到tar包了(图1)
3.接下来解压这个tar包
# tar -zxvf mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz 4.解压完毕后,可以做ln也可以直接mv改名,我们mv到/usr/local/mysq下去。
# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql 5.创建一个mysql用户
# useradd -s /sbin/nologin mysql 6.然后去创建一个mysql的数据存放目录
# mkdir -p /data/mysql
(目录不是定死的,只要你记得住)
7.因为以后mysql肯定要对目录进行操作,那得有权限,所以就把新创建的目录给过一下户,顺便给刚才解压的tar过户。
# chown -R mysql:mysql /data/mysql/
# chown -R mysql:mysql /usr/local/mysql/
8.接下来需要初始化mysql
# ./mysql_install_db--user=mysql --datadir=/data/mysql 这样执行必然会报错,看看报错信息吧!(图2)
针对上图的解决方法,可以试试下面的命令(其中原因是什么我不清楚,求大神指点)
# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql 当命令执行好之后,接下来会跳出另一个报错:(图3)
不要惊慌鸡动,仔细看报错信息,说是找不到什么什么,那我就想到是不是少装东西了,那我TM怎么知道少了什么,然后上帝告诉我了:(图4)
# yum install compat-libstdc++-33
感谢上帝!
9.将support-files下的my-large.cnf替换etc/my.cnf下
# cp my-large.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
10.还要把mysql.server覆盖到etc/init.d/mysqld
# cp mysql.server /etc/init.d/mysqld 11.Mysqld文件很重要我们要修改他的权限,不过好像复制过去直接是755了。
# chmod 755 mysqld 12.接下来我们要修改服务启动文件里面的参数了。
# vim /etc/init.d/mysqld 找到basedir和datadir,根据你的实际情况修改他们,别忘了改好wq:
basedir=/usr/local/mysql
datadir=/data/mysql
13.添加mysql服务,并且开启mysql服务
# chkconfig --add mysqld
# chkconfig mysqld on
鸡动人心的时候到了,启动mysql服务
# service mysqld start
Starting MySQL. SUCCESS!
咱们测试一下是不是能进去,这里要注意一下,有的同学看网上教程直接mysql –u –p可能会提示“命令找不到”,心想日了狗了,因为我也遇到过啊,日他哥~,冷静下来一想,尼玛基础啊,系统默认去找/usr/bin/mysql请问你有么?,要没有咱们就老实的去/usr/local/mysql/bin下面运行吧你懂的,如果有傲娇一定要mysql直接可以运行,那就加PATH就是了,感谢上帝!(图5)
你懂的~感谢上帝~~!
二.源码包编译安装
1.直入正题解压tar包
# ll
总用量 23740
-rw-r--r-- 1 root root 24305842 5月6 2015 mysql-5.5.20.tar.gz
# tar -zxvf mysql-5.5.20.tar.gz
# ll
总用量 23744
drwxr-xr-x 31 7161 wheel 4096 12月17 2011 mysql-5.5.20
-rw-r--r--1 root root24305842 5月6 2015 mysql-5.5.20.tar.gz
2.进入解压出来的mysql目录并对其进行编译
# cd mysql-5.5.20
# pwd
/opt/mysql-5.5.20
接下来要进行cmake,因为我安装的是minimal,所以需要安装必要的工具,如下
值得一说的是,当我们yum安装之前我觉得你应该先list *gcc*而不只是list gcc* 你可以试验一下观察他#们的不同,从而再定夺,我是小白啊,所以*gcc*
# yum install *gcc* 装完不要嘚瑟,主角cmake还没上呢
# yum install cmake 接下来正式开始cmake
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1
加个连接里面有介绍各种参数和用法:
http://www.blogjava.net/kelly859/archive/2012/09/04/387005.html
别想着一次成功,办会报错的我们echo $? 结果=1,来看看什么错误:
-- Could NOT find Curses (missing:CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found.Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev,
on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:118 (FIND_CURSES)
cmake/readline.cmake:214 (MYSQL_USE_BUNDLED_READLINE)
CMakeLists.txt:257 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.5.20/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.5.20/CMakeFiles/CMakeError.log".
说没有找到Curses,然后往下看说如果是红帽系列的话那需要安装ncurses-devel,咱们继续装
# yum install ncurses-devel.x86_64 装完我们重新cmake一次,你会发现还是报错,而且报错和之前一样,解决办法是删除CMakeCache.txt
# rm -rf CMakeCache.txt 再重新cmake一次,你会发现成功了,echo $? ==0,不要在意那些warning,cmake通过
接下来make ,make install 我喜欢分开来执行哈哈......
3.配置mysql直到世界尽头
创建mysql组创建mysql用户,创建mysql的data目录(这个目录是活的而且是根据你之前cmake的之后指定的datadir而定所以mkdir只作为大家参考具体设置要根据你的需求而定)
# groupadd mysql
# useradd -g mysql mysql
# mkdir -p /data/mysql
修改mysql目录和data目录权限
# chown -R mysql:mysql /usr/local/mysql (注意你自己所在的目录啊,不要复制了就上)
# chown -R mysql:mysql /data/mysql
初始化mysql数据库
# ./scripts/mysql_install_db --user=mysql--datadir=/data/mysql/
Installing MySQL system tables...
OK
Filling help tables...
OK
上面2个OK 出现就可以了,接下来还需要修改两个目录的权限:
进入mysql目录让他的属主成为root(其实我一直不明白这句话背后的含义到底是什么,让root成为属主,之后项目运用的时候不都是mysql用户对数据库进行操作吗?,这点真的不太明白,如果有大神指导还希望倾囊相授!)
# pwd
/usr/local/mysql
# chown -R root .
再将之前datadir目录也就是我这里设置的/data的属主改成mysql。
# chown -R mysql data 4.修改各种配置文件和启动服务
# cp my-medium.cnf /etc/my.cnf 这里配置文件大家可以看一下有好几个,找最适合你需求的,就像有的网游的武器有的是适合PVE的有的适合PVP,给2个连接关于my.cnf的详解
http://www.linuxidc.com/Linux/2013-07/87993.htm 介绍几个cnf不同之处
http://www.blogjava.net/hunter129/archive/2009/01/18/251744.html 配置文件参数详解
回到mysql目录执行下面命令
# bin/mysqld_safe --user=mysql 然后复制mysql.server到/etc/init.d/mysqld(我相信你懂是啥意思的)
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld (要是没有X你就加一个,有就算了)
# service mysqld start
Starting MySQL... SUCCESS!
看到这个你懂的,启动了!
鸡动人心的时候到了!
# /usr/local/mysql/bin/mysql -uroot (这样没密码是不对的,之后还会更新怎么加密码)
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.20-log Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
感谢上帝!1024!
页:
[1]