CentOS 6.5下安装MySQL (源码)

2014/03/09 1738点热度 0人点赞 0条评论

centos6.5是使用centos6.4最小化安装以后升级成的。

安装环境支持

yum install -y wget gcc-c++ ncurses-devel cmake make perl

安装配置Mysql

创建用户和目录

groupadd mysql              #在这里我们要建一个msyql的用户和组  
useradd -g mysql mysql -s /usr/sbin/nologin  
mkdir /usr/local/mysql           #创建目录  
mkdir /data/mysql              #数据仓库目录

安装mysql

http://mirrors.sohu.com/mysql/找一个tar.gz的版本下载下来

我使用的是mysql-5.6.11.tar.gz

tar -zxvf mysql-5.6.11.tar.gz  mysqlsrc

切换到mysqlsrc目录下,执行。ps:如果不切换到mysqlsrc目录下,执行下面的命令的时候会报找不到CMakeLists.txt文件。

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  
 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  
 -DDEFAULT_CHARSET=utf8 \  
 -DDEFAULT_COLLATION=utf8_general_ci \  
 -DWITH_MYISAM_STORAGE_ENGINE=1 \  
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \  
 -DWITH_MEMORY_STORAGE_ENGINE=1 \  
 -DWITH_READLINE=1 \  
 -DENABLED_LOCAL_INFILE=1 \  
 -DMYSQL_DATADIR=/data/mysql \  
 -DMYSQL_USER=mysql \  
 -DMYSQL_TCP_PORT=3306

 还可以直接 tar -zxvf mysql-5.6.11.tar.gz cmake.....

make;make install

然后漫长的等待开始了,可以溜达会。

安装好以后,增加环境变量,让mysql命令可以随地运行,不用再切换到mysql目录中

vi /etc/profile

贴着最后一行加入一下两句

PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib/
export PATH

保存退出,让其立即生效

source /etc/profile

赋予mysql用户操作mysql数据库所在目录的权限

chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql

切换到mysql下的scripts,安装默认数据库

cd /usr/local/mysql/scripts/
./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql

初始化脚本在 /usr/local/mysql/my.cnf 生成了配置文件

复制服务启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

修改mysqld
   不修改的话,启动会失败。 
   重点修改: 

   basedir=/usr/local/mysql 
   datadir=/data/mysql 
   lock_file_path="$lockdir/mysql" 
   mysqld_pid_file_path=/usr/local/mysql/mysql.pid 
   # Try to find basedir in
/etc/my.cnf 
   conf=$basedir/my.cnf

 接着就可以启动mysql

service mysqld  restart
MySQL server PID file could not be found!                  [失败]
Starting MySQL..The server quit without updating PID file (/data/mysql/mysql.pid).      [失败]

    1.可能是/usr/local/mysql/mysql.pid文件没有写的权限

        解决方法 :给予权限,执行 “chown -R mysql:mysql /usr/local/mysql “chmod -R 755 /data/mysql”  然后重新启动mysqld!

    2.可能进程里已经存在mysql进程

        解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

    3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

        解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了

    4.mysql在启动时没有指定配置文件时会使用my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

        解决方法:请在[mysqld]下设置这一行:datadir = /data/mysql

        my.cnf文件配置过高,重新定义其中的参数(根据服务器情况定义);(本人就是这个情况)

         比如:innodb_buffer_pool_size=系统内存/10

               join_buffer_siz=比上面的要小

    5.skip-federated字段问题

        解决方法:检查一下my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

    6.错误日志目录不存在

        解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

    7.selinux惹的祸,如果是centos系统,默认会开启selinux

       解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘后 source ..。

设置开机启动

chkconfig mysqld on

给mysql设置密码

mysql             # 直接就进入mysql(初始的mysql没有密码哦)
>use mysql;
>update user set password = password(123456) where user = 'root';# 给root设置密123456
>flush privileges;        #刷新表使其生效
>\q                            #  退出,重新进入mysql就需要密码
mysql -uroot -p 123456        #就可以进去了
>

yxkong

这个人很懒,什么都没留下

文章评论