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.....
然后漫长的等待开始了,可以溜达会。
安装好以后,增加环境变量,让mysql命令可以随地运行,不用再切换到mysql目录中
贴着最后一行加入一下两句
PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib/
export PATH
保存退出,让其立即生效
赋予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
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 ..。
设置开机启动
给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 #就可以进去了
>