- 下载解压源码,由于是二进制文件,所以需要解压到/usr/local/目录下
先把自带的mysql移除 [iyunv@localhost lib]# rpm -qa|grep mysql mysql-devel-5.1.73-3.el6_5.x86_64 mysql-libs-5.1.73-3.el6_5.x86_64 mysql-5.1.73-3.el6_5.x86_64 [iyunv@localhost ~]# yum remove mysql 由于源码编译时间太长,所以这里的是官网获得二进制安装包 [iyunv@localhost ~]# tar xf mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[iyunv@localhost ~]# cd /usr/local
[iyunv@localhost local]# ln -sv mysql-5.6.25-linux-glibc2.5-x86_64 mysql
2 、安装过程参照/解压目录/INSTALL_BINARY
[iyunv@localhost local]# cd mysql [iyunv@localhost mysql]# more INSTALL-BINARY
总结如下: 所以
[iyunv@localhost htdocs]# groupadd mysql
[iyunv@localhost htdocs]# useradd -r -g mysql mysql
3. 暂时修改安装目录下文件属主属组为mysql并执行安装脚本/安装目 录/scripts/mysql_install_db
[iyunv@localhost ~]# cd /usr/local/mysql
[iyunv@localhost mysql]# chown -R mysql.mysql *
关于执行脚本注意加上选项,可以-h查看,--user=mysql --datadir=XX datadir建 议使用一个独立的分区
划分一个20G空闲空间格式为LVM(8e)
由于我的centos没有空间了,所以在虚拟机中添加一个硬盘,具体是关机,然后设置,左边下 面的添加,选择硬盘。
[iyunv@localhost mysql]# fdisk /dev/sdb
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 8e Linux LVM
最后输入w,中间转换类型使用t
然后创建pv
[iyunv@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
物理部分搞定,创建vg,记得指定名字
[iyunv@localhost ~]# vgcreate vgdata /dev/sdb1
Volume group "vgdata" successfully created
创建lv
[iyunv@localhost ~]# lvcreate -L +10G -n lvdata vgdata
Logical volume "lvdata" created
格式化lvdata
[iyunv@localhost ~]# mke2fs -t ext4 /dev/vgdata/lvdata
[iyunv@localhost ~]# mkdir /data/
[iyunv@localhost ~]# mount /dev/vg vga_arbiter vgdata/ vg_livecd/ [iyunv@localhost ~]# mount /dev/vgdata/lvdata /data/ [iyunv@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg_livecd-lv_root ext4 19G 4.4G 14G 25% / tmpfs tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 ext4 485M 34M 426M 8% /boot /dev/mapper/vgdata-lvdata ext4 9.9G 151M 9.2G 2% /data 开机挂载
[iyunv@localhost ~]# echo "/dev/vgdata/lvdata /data ext4 defaults 0 0" >> /etc/fstab
4. 执行安装脚本
[iyunv@localhost mysql]# mkdir /data/mysql/
[iyunv@localhost mysql]# ./scripts/mysql_install_db --user=mysql -- datadir=/data/mysql
其实这里可以指定mysock文件,否则请修改sock为/tmp目录下
3 安装完成把属主改为root,把data改为mysql用户,由于我们是放在新盘所以不用改咯
[iyunv@localhost mysql]# chown -R root *
4 把support-files/mysql.server 可以复制到启动脚本里面
[iyunv@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
修改文件
[iyunv@localhost mysql]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysql
5 复制安装目录下的my.cnf 为/etc/my.cnf
[iyunv@localhost ~]# cp /usr/local/mysql/my.cnf /etc/my.cnf
在主配置文件中发现sock等,其实还需要定义
部分修改如下
basedir = /usr/local/mysql datadir = /data/mysql port = 3306 server_id = 1 socket=/tmp/mysql.sock 并把下面的#去掉
6 额外的动作
[iyunv@localhost mysql]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf
- 加入man帮助信息
[iyunv@localhost mysql]# man mysql
No manual entry for mysql
所以需要加入man文档在/etc/man.config中加入一行MANPATH /usr/local/mysql/man
就可以使用man了
- 增加路径包含,即可用使用常见命令
[iyunv@localhost mysql]# mysql --help
-bash: mysql: command not found
[iyunv@localhost mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile.d/mysql.sh
[iyunv@localhost mysql]# source /etc/profile.d/mysql.sh
mysql的相关命令就可以使用了
- 头文件包含的问题
一般来说,为其在/usr/include创建相应的目录连接即可
[iyunv@localhost ~]# ln -sv /usr/local/mysql/include /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include'
7 启动我们的服务试试
[iyunv@localhost ~]# netstat -tlnp|grep mysql
[iyunv@localhost ~]#
[iyunv@localhost ~]# service mysqld start
Starting MySQL... [ OK ]
[iyunv@localhost ~]# netstat -tlnp|grep mysql
tcp 0 0 :::3306 :::* LISTEN 2790/mysqld
[iyunv@localhost ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.25 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.02 sec) mysql> 9 下面还是想起前提apache httpd的安装了,里面有socket,有pidfile文件
所以这里继续尝试,因为主配置文件有sock设置,所以请自己创建相应的文件夹,并重启服务按道理在那个文件夹就会有相应的sock文件了
就是始终找不到pidfile文件,其实我忽略了刚开始创建的数据文件夹/data/mysql,如果想知道这个也很简单
网上的一个很好的命令
[iyunv@localhost mysqld]# ps ax|grep mysqld
4172 pts/0 S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
4390 pts/0 Sl 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/var/run/mysql/mysqld.socket --port=3306 4420 pts/0 S+ 0:00 grep mysqld
|