系统环境:Linux 2.6.32-642.el6.x86_64
需求为在linux系统上采用源码安装的方式安装mysql
版本:MySQL 5.6.20
1. 下载源码文件,进入mysql官网:http://dev.mysql.com/,依次点击Downloads--->Archives--->MySQL Community Server,或在地址栏直接输入http://downloads.mysql.com/archives/community/进入下载页面,根据系统版本选择相应下载按钮。也可在首页下载最新版本,本教程以5.6.20为例。
2. 安装源码之前linux可能需要的环境:
[root@Vmware22 Downloads]# yum install cmake
....
[root@Vmware22 Downloads]# yum groupinstall "Development tools"
....
[root@Vmware22 Downloads]# yum install openssl openssl-devel zlib zlib-devel ncurses-devel ncurses readline readline-devel
....
3. 安装之前还需要把硬盘做成lvm进行管理方便以后进行磁盘扩容(这里假设新添加了一块硬盘)
3.1 查看磁盘信息:fdisk -l
3.2 对新添加的磁盘sdb分区及格式化:
[root@Vmware22 ~]# fdisk /dev/sdb
....
Command (m for help):m ----使用m查看帮助信息
....
Command (m for help):n ----新建分区
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
First cylinder (1-2610, default 1): ----直接回车
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+10G ----由于后面进行动态磁盘配额,故只分配10G
Command (m for help): w ----写入磁盘并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@Vmware22 ~]# fdisk -l 再次检查磁盘信息
...
3.3 依次输入下面命令:
[root@Vmware22 ~]# pvscan ----检查有无PV在系统上。PV用于将物理硬盘分区初始化为物理卷,以便LVM使用
No matching physical volumes found
[root@Vmware22 ~]# pvcreate /dev/sdb1 ----将sdb1分区转成pv。如果有多个分区,可用pvcreate /dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created
[root@Vmware22 ~]# vgcreate myvg /dev/sdb1 ----创建卷组"myvg",并且将/dev/sdb1添加到卷组中。
Volume group "myvg" successfully created
[root@Vmware22 ~]# lvcreate -L 10G -n mydata myvg ----在卷组"myvg"上创建一个10G的逻辑卷。
Logical volume "mydata" created.
[root@Vmware22 ~]# mke2fs -j /dev/myvg/mydata
....
[root@Vmware22 ~]# mkdir /mydata
[root@Vmware22 ~]# vim /etc/fstab ----实现开机自动挂载/dev/sdb1,在打开的文件中添加如下信息:
/dev/myvg/mydata /mydata ext4 defaults 0 0
-------------注意格式与原文件一致,保存退出
[root@Vmware22 ~]# mount -a ----检测配置信息,如无任何输出信息则证明挂载正确,否则可能会导致下次开机时无法正确开机
[root@Vmware22 ~]#
3.4 准备用户:
[root@Vmware22 ~]# groupadd -r mysql
groupadd: group 'mysql' already exists
[root@Vmware22 ~]# useradd -r -g mysql -s /sbin/nologin mysql
useradd: user 'mysql' already exists
[root@Vmware22 ~]# mkdir /mydata/data ----创建保存mysql数据的目录
[root@Vmware22 ~]# chown mysql.mysql /mydata/data/ -R ----修改权限让mysql用户和用户组对其拥有权限
[root@Vmware22 ~]#
4. 开始安装:
此处为cmake编译参数设置,由于过长粘贴在此,可在下图中查看信息:
[root@Vmware22 ~]# cmake . -DCMAKE_INSTALL_PREFIX=/data/program/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
[root@Vmware22 Downloads]# ls
mysql-5.6.20.tar.gz
[root@Vmware22 Downloads]# tar -xvf mysql-5.6.20.tar.gz
....
[root@Vmware22 Downloads]# cd mysql-5.6.20
[root@Vmware22 mysql-5.6.20]# cmake . -DCMAKE_INSTALL_PREFIX=/data/program/mysql \ ----自定义安装目录,\为先不执行等待下面的命令继续输入
> -DMYSQL_DATADIR=/mydata/data \ ----自定义数据保存目录,即前文3.4定义的/mydata/data,下面的参数不需记录,复制粘贴即可
> -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system \
> -DWITH_ZLIB=system -DWITH_LIBWRAP=0 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci ----cmake为编译文件
....
[root@Vmware22 mysql-5.6.20]# make && make installmake
5. 配置信息:
[root@Vmware22 mysql-5.6.20]# cd /data/program/mysql/
[root@Vmware22 mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
....
[root@Vmware22 mysql]# vim /etc/profile.d/1.sh 实现开机启动此脚本,名字可任取
export PATH=$PATH:/usr/local/mysql/bin ----配置环境信息,保存退出
[root@Vmware22 mysql]# /bin/bash /etc/profile.d/1.sh ----运行该脚本文件
[root@Vmware22 mysql]# cp support-files/mysql.server /etc/init.d/mysqld56
[root@Vmware22 mysql]# cp /etc/my.cnf /etc/my.cnf.bck ----备份该文件
[root@Vmware22 mysql]# cp support-files/my-default.cnf /etc/my.cnf ----如果有提示是否覆盖,按y
[root@Vmware22 mysql]# vim /etc/my.cnf 添加以下信息
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packe = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 16M
thread_concurrency = 4
datadir = /mydata/data
----保存退出
[root@Vmware22 mysql]# /etc/init.d/mysqld56 restart
MySQL server PID file could not be found! [FAILED]
Starting MySQL.. [ OK ]
6. 安装成功后,默认的root用户密码为空,使用下面命令来创建root密码:
[root@Vmware22 mysql]# mysqladmin -uroot password 'new_pass' ----new_pass为密码
7. 登录mysql服务器:
[root@Vmware22 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.20 Source distribution
Copyright (c) 2000, 2013, 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>
8.附加:
8.1 yum install mysql安装的mysql版本过低
8.2 为方便也可使用官网提供的rpm包:分别下载mysql服务器端和客户端包
# rpm -ivh /root/Download/MySQL-server-*.*.rpm MySQL-client-*.*.rpm MySQL-devel-*.*.rpm
....
----*.*为下载rpm包的版本号
rpm安装具体配置信息参考:http://www.cnblogs.com/sunson/articles/2172086.html
来源:oschina
链接:https://my.oschina.net/u/2917687/blog/783413