#######Redhat6.5源码编译安装Mysql########
实验环境:
1.IP:172.25.8.3
2.磁盘要大于20G
先添加一块大于20G的磁盘
fdisk /dev/vdb        ##得到/dev/vdb1 8e linux
pvcreate /dev/vdb1    ##把物理分区做成物理卷
vgextend vg_server1 /dev/vdb1    ##把新建立的/dev/vdb1添加到vg_server1中
lvextend -L 20G /dev/vg_server1/lv_root    ##扩大lvm扩展到到20G
resize2fs /dev/vg_server1/lv_root    ##格式化文件系统

实验内容:
1.清理环境
rpm -qa|grep mysql    ##检查mysql版本
rpm -e|grep mysql    ##卸载mysql

2.安装

安装包:
mysql-boost-5.7.11.tar.gz    ##boost是一个可移植、提供源代码的c++库
cmake-2.8.12.2-4.el6.x86_64.rpm    ##新版mysql用cmake编译安装(cmake是一个编译工具,比make高级,通过编写CMakeList.txt文件,然后cmake命令将CMakeList.txt文件转化为make所需的makefile,最后make命令编译源码生成可执行程序或共享库)

tar zxf mysql-boost-5.7.11.tar.gz        ##进行解压
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm    ##进行安装
yum install -y gcc gcc-c++ make ncurses-devel bison openssl-devel zlib-devel cmake    ##安装包依赖性

cd /root/mysql-5.7.11                ##进入目录
cmake \     ##cmake命令安装
> -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \    ##指定mysql安装目录,默认/usr/loacl/mysql
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \        ##数据文件目录
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \    ##socket文件路径,默认/tmp/mysql.sock
> -DWITH_MYISAM_STORAGE_ENGINE=1 \    ##安装myisam存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \    ##安装innodb存储引擎
> -DWITH_BOOST=boost/boost_1_59_0 \    ##boost库
> -DDEFAULT_CHARSET=utf8 \        ##使用utf8字符
> -DDEFAULT_COLLATION=utf8_general_ci \    ##校验字符
> -DEXTRA_CHARSETS=all            ##安装所有扩展字符集

(rm -f CMakeCache.txt    ##编译过程中缺什么安装什么,多什么删什么,一般在安装包依赖性时解决,这次用于实验没有完全解决
yum install -y ncurses-devel gcc-c++ bison    ##ncurses-devel字符终端下屏幕控制的基本库 ,gcc-c++)

make    ##make时间比较长
make install

useradd -u 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql    ##-M不要自动建立用户的登入目录
groupmod -g 27 mysql    

chown mysql.mysql /usr/local/lnmp/mysql -R    ##修改目录所属人和组
cd /usr/local/lnmp/mysql    ##进入目录

cp /usr/local/lnmp/mysql/support-files/my-default.cnf /etc/my.cnf    ##覆盖/etc/my.cnf
cp /etc/my.cnf /etc/my.cnf.rpm    ##备份一份my.cnf,为my.cnf.rpm

cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld    ##mysql启动脚本复制到/etc/init.d/

vim ~~/.bash_profile    ##编辑文件,指定环境变量,在PATH后面添加冒号 :/usr/local/lnmp/mysql/bin
source .bash_profile    ##刷新.bash_profile,用echo $PATH查看

mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql --datadir=/usr/local/lnmp/mysql/data
##mysql_install_db是一个初始化脚本,用于初始化data目录并且创建那些系统表,同样也会初始化系统表空间并且关联innodb表和数据结构。--user指定为mysqld服务运行用户,--basedir指定安装目录,--datadir指定数据存放目录

mysql_secure_installation    ##mysql安全配置向导,1)为root添加密码2)删除匿名帐号3)取消root远程登录4)删除test库和对test库访问权限5)刷新授权表使修改生效

mysql -uroot -predhat 即可登录成功
若要修改密码:mysql> alter user root@localhost identified by 'westos'; 之后在使用新密码登录



补充:mysql忘记密码
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
1.vim /etc/my.cnf
[mysqld]
skip-grant-tables    ##添加这句
2.重启mysqld服务
3.mysql命令直接进入重置密码
mysql> update mysql.user set authentication_string=password('redhat')where user='root'and Host='localhost';
mysql> flush privileges;
mysql> grant all on *.* to 'root'@'localhost' identified by 'redhat' with grant option;
mysql> flush privileges;
4.vim /etc/my.cnf
[mysqld]
#skip-grant-tables    ##注释这句或者删除

5.重启mysqld服务
6.mysql -uroot -predhat 即可登录成功